<!doctype html><html class=announcement data-js=js-pricing data-section=pricing data-file-dir=pricing/ data-file=pricing/_index.md data-env=live data-permalink=https://www.datadoghq.com/pricing/ data-draft=false data-image="https://corp.dd-static.net/img/<nil>" lang=en itemscope itemtype=http://schema.org/Article><head><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-WDC8G6" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><script>(function(e,t,n,s,o){e[s]=e[s]||[],e[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n),r=s!="dataLayer"?"&l="+s:"";i.async=!0,i.src="//www.googletagmanager.com/gtm.js?id="+o+r,a.parentNode.insertBefore(i,a)})(window,document,"script","dataLayer","GTM-WDC8G6")</script><script type=text/javascript charset=UTF-8>!function(){var t,n,e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("MetaRouter snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"],e.factory=function(t){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(t),e.push(n),e}};for(t=0;t<e.methods.length;t++)n=e.methods[t],e[n]=e.factory(n);e.load=function(t,n){e._loadOptions=n;var o,s=document.createElement("script");s.type="text/javascript",s.async=!0,s.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.calibermind.com/"+t+".js",o=document.getElementsByTagName("script")[0],o.parentNode.insertBefore(s,o)},e.SNIPPET_VERSION="4.13.1",e.load("a",{writeKey:"XSKLfWxdCQx6wUsWPAwUN"}),e.page()}}()</script><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel="dns-prefetch preconnect" href=https://corp.dd-static.net/><link rel="dns-prefetch preconnect" href=https://d88f3ym7dkyv7.cloudfront.net><link rel="dns-prefetch preconnect" href=https://www.googletagmanager.com><link rel="dns-prefetch preconnect" href=//app-sj16.marketo.com><link rel="dns-prefetch preconnect" href=//munchkin.marketo.net><link rel="dns-prefetch preconnect" href=http://eoig7v0a2o-dsn.algolia.net><link rel=preload as=font type=font/woff2 href=https://www.datadoghq.com/fonts/web-fonts/NationalWeb-Light.woff2 crossorigin=anonymous><link rel=preload as=font type=font/woff2 href=https://www.datadoghq.com/fonts/web-fonts/NationalWeb-Semibold.woff2 crossorigin=anonymous><link rel=preload as=font type=font/woff2 href=https://www.datadoghq.com/fonts/web-fonts/NationalWeb-Bold.woff2 crossorigin=anonymous><link rel=apple-touch-icon sizes=180x180 href=https://corp.dd-static.net/img/favicons/apple-touch-icon.png><link rel=icon type=image/png sizes="48x48 32x32 16x16" href=https://corp.dd-static.net/img/favicons/dd-favicon.png><link rel=mask-icon href=https://corp.dd-static.net/img/favicons/safari-pinned-tab.svg color=#632ca6><meta name=msapplication-TileColor content="#ffffff"><meta name=theme-color content="#ffffff"><title>Pricing | Datadog</title>
<meta name=description content="Flexible, transparent pricing designed to scale with your business "><link rel=canonical href=https://www.datadoghq.com/pricing/><link rel=alternate hreflang=en href=https://www.datadoghq.com/pricing/><link rel=alternate hreflang=x-default href=https://www.datadoghq.com/pricing/><link rel=alternate hreflang=ja href=https://www.datadoghq.com/ja/pricing/><link rel=alternate hreflang=ko href=https://www.datadoghq.com/ko/pricing/><link rel=stylesheet integrity="sha256-QEYNJkWKGcZ0G7CHMafFDis++LTVzIlXMu33x5qqmVE=" crossorigin=anonymous href=https://www.datadoghq.com/styles/datadog-main.min.40460d26458a19c6741bb08731a7c50e2b3ef8b4d5cc895732edf7c79aaa9951.css><link href=https://www.datadoghq.com/pricing/index.xml rel=alternate type=application/rss+xml title="Modern monitoring & security"><link href=https://www.datadoghq.com/pricing/index.xml rel=feed type=application/rss+xml title="Modern monitoring & security"><script>window._loadedScripts=window._loadedScripts||new Set,window._originalCreateElement=document.createElement,document.createElement=function(e){const t=window._originalCreateElement.call(this,e);if(e.toLowerCase()==="script"){const e=t.setAttribute;t.setAttribute=function(t,n){if(t==="src"&&window._loadedScripts.has(n)){console.log("Preventing duplicate script load:",n);return}return t==="src"&&window._loadedScripts.add(n),e.call(this,t,n)}}return t}</script><script type=module src=https://www.datadoghq.com/assets/lang-redirects.min.c1ad237f9d953469286cce919fd714d9edf7ad193e6a60798192d8a8c69156a6.js></script><script type=text/javascript src=https://www.datadoghq.com/static/dd-libs.cfc0fc7c8131c38b026e93f283148dccf754cd8d3e5ad027ef77c1b84c04d0a7265d7ca94b7475b930ba0e7e179b0ec3e1a73d10d09d79ca3cc6ed6971c09b95.js integrity="sha512-z8D8fIExw4sCbpPygxSNzPdUzY0+WtAn73fBuEwE0KcmXXypS3R1uTC6Dn4Xmw7D4ac9ENCdeco8xu1pccCblQ==" crossorigin=anonymous></script><script type=text/javascript>window.CORPSITE_CONFIG={serverUrl:"https://www.datadoghq.com/",staticAssetsURL:"https://corp.dd-static.net/",typesense:{host:"gk6e3zbyuntvc5dap",public_key:"bDUaL3uKrCG0033PDb6Vbi8n46mKGaMG",primary_index:"corpsite_alias",related_jobs_index:"careers_alias",search_docs_index:"docs_alias"}}</script><script src=https://www.datadoghq.com/assets/dd-browser-logs-rum.min.e917a2c440239c71160c0ac6425d294af5096ec23d7b47cda87ef88f0cfb48b0.js></script><script>window.DD_AB_CONFIG={flagKey:"pricing-aa-test",controlSuffix:"/pricing/",aaTest:!0}</script><script src=https://www.datadoghq.com/assets/feature-flag-redirect.min.859dd972a4ada9be91508a80192fa08390d4d2f2828ef43453491f7d7c78d6f3.js></script><script src=https://www.datadoghq.com/assets/utm-handler.min.94d79fa3fc8f8c1ba1b075710e46a95a04a7849e179d21575f548515d9a976b5.js></script></head><body class=pricing><div class="announcement-banner text-center"><a class="fw-semibold text-nowrap" href="https://www.datadoghq.com/resources/gartner-magic-quadrant-observability-platforms-2026/?utm_source=inbound&amp;utm_medium=corpsite-display&amp;utm_campaign=dg-apm-ww-announcement-corpsite-announcement-gartnermq2026-obsplat"><span class="d-none d-md-block tw-hidden banner-title-desktop tablet:tw-block">Datadog named a Leader in the Gartner® Magic Quadrant™ for Observability Platforms
</span><span class="d-block d-md-none tw-block tablet:tw-hidden banner-title-mobile">Leader in the Gartner® Magic Quadrant™
</span></a><script>function getGeotarget(){const o=!1,t={webinars:[{codes:["US","CA"],desktop_title:null,end_date:null,link:null,mobile_title:null,start_date:null,supported_language:"en"},{codes:["UK","US","CA","GB","IE","BE","NL","PL","DK","SE",!1,"LU","IL","FI","GR","LI","CZ","ZA","IL","ES","DE","FR","IT","CH"],desktop_title:"Datadog Detect is back! Register for the virtual mini-conference on Oct 30, 12PM ET",end_date:"2025-10-30",link:"https://www.datadoghq.com/event/datadog-detect-q425/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-security-ww-banner-corpsite",mobile_title:"Join us for Datadog Detect on Oct 30, 12PM ET",start_date:"2025-10-22",supported_language:"en"},{codes:["ES"],desktop_title:"Webinar de Datadog: Crea experiencias digitales impecables con monitorización End-to-End",end_date:"2025-05-06",link:"https://www.datadoghq.com/es/dg/webinars/uxdem-spain-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-emea-livewebinar-202505uxdemsp",mobile_title:"Crea experiencias digitales impecables con monitorización End-to-End",start_date:"2025-04-22",supported_language:"es"},{codes:["JP"],desktop_title:"Datadog ウェビナー: エンドツーエンドの監視によって生み出されるシームレスな DX",end_date:"2025-05-14",link:"https://www.datadoghq.com/ja/dg/webinars/uxdem-japan-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-japan-livewebinar-202505uxdemjp",mobile_title:"ウェビナー: エンドツーエンドの監視によって生み出されるシームレスな DX",start_date:"2025-05-01",supported_language:"ja"},{codes:["SG","NZ","AU","IN","PH","TW","VN","ID","TH","MY"],desktop_title:"Register Now: Create Seamless Digital Experiences with End-to-End Monitoring",end_date:"2025-04-24",link:"https://www.datadoghq.com/dg/webinars/uxdem-anz-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-apac-livewebinar-202504uxdemanz",mobile_title:"Create Seamless Digital Experiences with End-to-End Monitoring",start_date:"2025-04-10",supported_language:"en"},{codes:["MX","AR","CO","PE","VE"],desktop_title:"Webinar de Datadog: Crea experiencias digitales fluidas con el monitoreo punto a punto",end_date:"2025-04-10",link:"https://www.datadoghq.com/es/dg/webinars/uxdem-es-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-latam-livewebinar-202504uxdemes",mobile_title:"Crea experiencias digitales fluidas con el monitoreo punto a punto",start_date:"2025-04-01",supported_language:"es"},{codes:["FR","BE","CH","CA"],desktop_title:"Webinar Datadog: Créez des expériences numériques fluides grâce à la surveillance de bout en bout ",end_date:"2025-04-30",link:"https://www.datadoghq.com/fr/dg/webinars/uxdem-france-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-emea-livewebinar-202504uxdemfr",mobile_title:"Créez des expériences numériques fluides grâce à la surveillance de bout en bout",start_date:"2025-04-16",supported_language:"fr"},{codes:["IT","CH"],desktop_title:"Webinar di Datadog: Creare digital experience impeccabili con il monitoraggio end-to-end",end_date:"2025-04-29",link:"https://www.datadoghq.com/it/dg/webinars/uxdem-italy-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-emea-livewebinar-202504uxdemit",mobile_title:"Creare digital experience impeccabili con il monitoraggio end-to-end",start_date:"2025-04-15",supported_language:"it"},{codes:["KR"],desktop_title:"Datadog 웨비나 | 인프라 & 쿠버네티스 모니터링 쉽게 마스터하기! 2/21 (금) 2PM",end_date:"2025-02-20",link:"https://www.datadoghq.com/ko/dg/webinars/infra-korea-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-infra-korea-corpsite-banner-livewebinar-202502infrakr",mobile_title:"인프라 & 쿠버네티스 모니터링 쉽게 마스터하기! 2/21",start_date:"2025-01-30",supported_language:"ko"},{codes:["BR","PT"],desktop_title:"Webinar da Datadog: Crie experiências digitais perfeitas com monitoramento de ponta a ponta",end_date:"2025-04-09",link:"https://www.datadoghq.com/pt/dg/webinars/uxdem-pt-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-latam-livewebinar-202504uxdempt",mobile_title:"Crie experiências digitais perfeitas com monitoramento de ponta a ponta",start_date:"2025-04-01",supported_language:"pt"},{codes:["DE","AT","CH"],desktop_title:"Datadog-Webinar: Schaffen Sie eine nahtlose digitale Experience mit End-to-End-Monitoring",end_date:"2025-04-09",link:"https://www.datadoghq.com/de/dg/webinars/uxdem-dach-2025/?utm_source=inbound&utm_medium=corpsite-display&utm_campaign=dg-dem-emea-livewebinar-202504uxdemdach",mobile_title:"Schaffen Sie eine nahtlose digitale Experience mit End-to-End-Monitoring",start_date:"2025-04-01",supported_language:"de"}]};let e="US";function n(e,t,n){const s=Date.now(),o={value:t,timestamp:s+n};localStorage.setItem(e,JSON.stringify(o))}function s(){const t=window.document.URL.match("(www|docs).datadoghq.com")?"https://www.datadoghq.com/locate":"https://corpsite-staging.datadoghq.com/locate";return fetch(t).then(e=>e.json()).then(t=>{e=t.country,n("country",e,6048e5)}).catch(n("country",e,0))}const i=()=>{try{const n=localStorage.getItem("country"),t=JSON.parse(n);if(Date.now()<t.timestamp)return e=t.value,e;s()}catch{s()}return e};if(t&&!o){i();let n=!1;t.webinars.forEach(t=>{t.codes.includes(e)&&(updateBanner(t),t.lp_link?n=!0:n=!1)})}}getGeotarget();function getLanguage(){const e=window.DD_RUM?.getUser?.().preferred_lang||navigator.language||"en",t=e.split("-");return t[0]}function populateBanner(e){document.querySelector(".banner-title-desktop").innerHTML=e.desktop_title,document.querySelector(".banner-title-mobile").innerHTML=e.mobile_title,document.querySelector(".announcement-banner > a").href=e.link}function updateBanner(e){const t=new Date,s=new Date(e.start_date),o=new Date(e.end_date),n=getLanguage(),{env:i}=document.documentElement.dataset;i!=="live"&&e.hasOwnProperty("test_message")&&e.test_message&&n===e.supported_language&&populateBanner(e),t>=s&&t<=o&&n===e.supported_language&&populateBanner(e)}</script></div><div class=main-nav-wrapper><nav class=main-nav><div class="container d-flex position-relative"><div class="d-none d-lg-flex justify-content-between w-100"><ul class="d-flex flex-row align-items-center list-unstyled m-0 flex-grow-1 justify-content-start"><li class="dropdown product-dropdown"><a class=dropdown href=https://www.datadoghq.com/product/>Product</a><div class="dropdown-menu product-menu" x-data="{
                    openCategory: 'observability',
                    timeoutID: null,
                    setCategory(category) {
                      this.timeoutID = setTimeout(() => {
                        this.openCategory = category;
                        const productMenu = document.querySelector('.product-menu');
                        window.DD_RUM.onReady(function() {
                          if (productMenu.classList.contains('show')) {
                            window.DD_RUM.addAction(`Product Category ${category} Hover`)
                          }
                        })
                      }, 160);
                    },
                    clearCategory() {
                      clearTimeout(this.timeoutID);
                    }
                  }" x-init="
                    const menu = document.querySelector('.product-menu');
                    var observer = new MutationObserver(function(mutations) {
                      mutations.forEach(function(mutation) {
                          if (mutation.attributeName === 'class' && !mutation.target.classList.contains('show')) {
                            openCategory = 'observability';
                          }
                      });
                    });
                    observer.observe(menu, { attributes: true });
                  "><div class=row><div class="col-4 category-toggle-list-column p-4 ps-5"><p class=product-hype>The integrated platform for monitoring & security</p><ul class=category-toggle-list><li><button @mouseover="setCategory('observability')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'observability' ? 'text-primary' : ''"><i class=icon-eye-4></i>Observability</button></li><li><button @mouseover="setCategory('security')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'security' ? 'text-primary' : ''"><i class=icon-security-platform></i>Security</button></li><li><button @mouseover="setCategory('digital-experience')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'digital-experience' ? 'text-primary' : ''"><i class=icon-rum></i>Digital Experience</button></li><li><button @mouseover="setCategory('software-delivery')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'software-delivery' ? 'text-primary' : ''"><i class=icon-ci></i>Software Delivery</button></li><li><button @mouseover="setCategory('service-management')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'service-management' ? 'text-primary' : ''"><i class=icon-software-catalog></i>Service Management</button></li><li><button @mouseover="setCategory('ai')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'ai' ? 'text-primary' : ''"><i class=icon-bits-ai></i>AI</button></li><li><button @mouseover="setCategory('platform')" @mouseout=clearCategory() class=w-100 :class="openCategory === 'platform' ? 'text-primary' : ''"><i class=icon-dashboard></i>Platform Capabilities</button></li></ul><a href=https://www.datadoghq.com/pricing/ class=pricing-link>View pricing<i class=icon-right-carrot-normal-2></i></a></div><div class=col-8><div class=product-category id=observability-detail x-show="openCategory === 'observability'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #8000FF 0%, #FF0080 100%)"><div class=category-description-main><i class=icon-eye-4></i><div class=info><p class=category-header>Observability</p><p class=category-tagline>End-to-end, simplified visibility into your stack’s health & performance</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Infrastructure</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/infrastructure-monitoring/ data-dd-action-name="infrastructure_monitoring in observability">Infrastructure Monitoring</a></li><li><a href=https://www.datadoghq.com/product/metrics/ data-dd-action-name="metrics in observability">Metrics</a></li><li><a href=https://www.datadoghq.com/product/network-monitoring/ data-dd-action-name="network_monitoring in observability">Network Monitoring</a></li><li><a href=https://www.datadoghq.com/product/container-monitoring/ data-dd-action-name="container_monitoring in observability">Container Monitoring</a></li><li><a href=https://www.datadoghq.com/product/kubernetes-autoscaling/ data-dd-action-name="kubernetes_autoscaling in observability">Kubernetes Autoscaling</a></li><li><a href=https://www.datadoghq.com/product/serverless-monitoring/ data-dd-action-name="serverless in observability">Serverless</a></li><li><a href=https://www.datadoghq.com/product/cloud-cost-management/ data-dd-action-name="cloud_cost_management in observability">Cloud Cost Management</a></li><li><a href=https://www.datadoghq.com/product/cloudcraft/ data-dd-action-name="cloudcraft in observability">Cloudcraft</a></li><li><a href=https://www.datadoghq.com/product/storage-management/ data-dd-action-name="storage_management in observability">Storage Management</a></li><li><a href=https://www.datadoghq.com/product/gpu-monitoring/ data-dd-action-name="gpu_monitoring in observability">GPU Monitoring</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Applications</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/apm/ data-dd-action-name="application_performance_monitoring in observability">Application Performance Monitoring</a></li><li><a href=https://www.datadoghq.com/product/universal-service-monitoring/ data-dd-action-name="universal_service_monitoring in observability">Universal Service Monitoring</a></li><li><a href=https://www.datadoghq.com/product/code-profiling/ data-dd-action-name="continuous_profiler in observability">Continuous Profiler</a></li><li><a href=https://www.datadoghq.com/product/dynamic-instrumentation/ data-dd-action-name="dynamic_instrumentation in observability">Dynamic Instrumentation</a></li><li><a href=https://www.datadoghq.com/products/ai/agent-observability/ data-dd-action-name="agent_observability in observability">Agent Observability</a></li></ul><p class="subcategory-header fw-bold text-uppercase">Data</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/database-monitoring/ data-dd-action-name="database_monitoring in observability">Database Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-streams-monitoring/ data-dd-action-name="data_streams_monitoring in observability">Data Streams Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-observability/quality-monitoring/ data-dd-action-name="quality_monitoring in observability">Quality Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-observability/jobs-monitoring/ data-dd-action-name="jobs_monitoring in observability">Jobs Monitoring</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Logs</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/log-management/ data-dd-action-name="log_management in observability">Log Management</a></li><li><a href=https://www.datadoghq.com/product/sensitive-data-scanner/ data-dd-action-name="sensitive_data_scanner in observability">Sensitive Data Scanner</a></li><li><a href=https://www.datadoghq.com/product/audit-trail/ data-dd-action-name="audit_trail in observability">Audit Trail</a></li><li><a href=https://www.datadoghq.com/product/observability-pipelines/ data-dd-action-name="observability_pipelines in observability">Observability Pipelines</a></li><li><a href=https://www.datadoghq.com/product/error-tracking/ data-dd-action-name="error_tracking in observability">Error Tracking</a></li><li><a href=https://www.datadoghq.com/product/byoc-logs/ data-dd-action-name="byoc_logs in observability">BYOC Log Management</a></li></ul></div></div></div><div class=product-category id=infra-detail x-show="openCategory === 'infra'"><div class=category-description style="--cta-bg:linear-gradient(90deg, %!s(<nil>) 0%, %!s(<nil>) 100%)"><div class=category-description-main><i class=icon-host-map></i><div class=info><p class=category-header>Infrastructure</p><p class=category-tagline></p></div></div></div><div class="category-details d-flex justify-content-between gap-2"></div></div><div class=product-category id=apps-detail x-show="openCategory === 'apps'"><div class=category-description style="--cta-bg:linear-gradient(90deg, %!s(<nil>) 0%, %!s(<nil>) 100%)"><div class=category-description-main><i class=icon-apm></i><div class=info><p class=category-header>Applications</p><p class=category-tagline></p></div></div></div><div class="category-details d-flex justify-content-between gap-2"></div></div><div class=product-category id=data-detail x-show="openCategory === 'data'"><div class=category-description style="--cta-bg:linear-gradient(90deg, %!s(<nil>) 0%, %!s(<nil>) 100%)"><div class=category-description-main><i class=icon-database-2></i><div class=info><p class=category-header>Data</p><p class=category-tagline></p></div></div></div><div class="category-details d-flex justify-content-between gap-2"></div></div><div class=product-category id=Logs-detail x-show="openCategory === 'Logs'"><div class=category-description style="--cta-bg:linear-gradient(90deg, %!s(<nil>) 0%, %!s(<nil>) 100%)"><div class=category-description-main><i class=icon-log></i><div class=info><p class=category-header>Logs</p><p class=category-tagline></p></div></div></div><div class="category-details d-flex justify-content-between gap-2"></div></div><div class=product-category id=security-detail x-show="openCategory === 'security'"><a class="category-description category-description-cta" href=https://www.datadoghq.com/products/security/ data-dd-action-name="Category Banner security" style="--cta-bg:linear-gradient(90deg, #0060FF 0%, #0032A0 100%);--cta-bg-hover:linear-gradient(90deg, #0060FF 0%, #0032A0 50%, #001B58 100%)"><div class=category-description-main><i class=icon-security-platform></i><div class=info><p class=category-header>Security</p><p class=category-tagline>Outpace AI-powered attacks with unified security and observability</p></div></div><span class=category-cta><span class=category-cta-label>Learn more</span>
<i class=icon-right-carrot-normal-2 aria-hidden=true></i></span></a><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Code Security</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/code-security/ data-dd-action-name="code_security in security">Code Security</a></li><li><a href=https://www.datadoghq.com/product/software-composition-analysis/ data-dd-action-name="software_composition_analysis in security">Software Composition Analysis</a></li><li><a href=https://www.datadoghq.com/product/sast/ data-dd-action-name="sast in security">Static Code Analysis (SAST)</a></li><li><a href=https://www.datadoghq.com/product/iast/ data-dd-action-name="iast in security">Runtime Code Analysis (IAST)</a></li><li><a href=https://www.datadoghq.com/product/iac-security data-dd-action-name="iac_security in security">IaC Security</a></li><li><a href=https://www.datadoghq.com/product/secret-scanning/ data-dd-action-name="secret_scanning in security">Secret Scanning</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Cloud Security</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/cloud-security/ data-dd-action-name="cloud_security in security">Cloud Security</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#posture-management data-dd-action-name="cloud_security_posture_management in security">Cloud Security Posture Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#entitlement-management data-dd-action-name="identity_and_entitlement_management in security">Cloud Infrastructure Entitlement Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#vulnerability-management data-dd-action-name="vulnerability_management in security">Vulnerability Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#compliance data-dd-action-name="compliance in security">Compliance</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Threat Management</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/cloud-siem/ data-dd-action-name="cloud_siem in security">Cloud SIEM</a></li><li><a href=https://www.datadoghq.com/product/workload-protection/ data-dd-action-name="workload_protection in security">Workload Protection</a></li><li><a href=https://www.datadoghq.com/product/app-and-api-protection/ data-dd-action-name="app_and_api_protection in security">App and API Protection</a></li><li><a href=https://www.datadoghq.com/product/sensitive-data-scanner/ data-dd-action-name="sensitive_data_scanner in security">Sensitive Data Scanner</a></li></ul><p class="subcategory-header fw-bold text-uppercase">Security Labs</p><ul class=product-list><li><a href=https://securitylabs.datadoghq.com/ data-dd-action-name="security_labs_research in security">Security Labs Research</a></li><li><a href=https://opensource.datadoghq.com/ data-dd-action-name="open_source_projects in security">Open Source Projects</a></li></ul></div></div></div><div class=product-category id=digital-experience-detail x-show="openCategory === 'digital-experience'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #00B765 0%, #00BBED 100%)"><div class=category-description-main><i class=icon-rum></i><div class=info><p class=category-header>Digital Experience</p><p class=category-tagline>Optimize front-end performance and enhance user experiences</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Digital Experience</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/real-user-monitoring/ data-dd-action-name="browser_real_user_monitoring in digital_experience">Browser Real User Monitoring</a></li><li><a href=https://www.datadoghq.com/product/real-user-monitoring/mobile-rum/ data-dd-action-name="mobile_real_user_monitoring in digital_experience">Mobile Real User Monitoring</a></li><li><a href=https://www.datadoghq.com/product/product-analytics/ data-dd-action-name="product_analytics in digital_experience">Product Analytics</a></li><li><a href=https://www.datadoghq.com/product/experiments/ data-dd-action-name="experiments in digital_experience">Experiments</a></li><li><a href=https://www.datadoghq.com/product/real-user-monitoring/session-replay/ data-dd-action-name="session_replay in digital_experience">Session Replay</a></li><li><a href=https://www.datadoghq.com/product/synthetic-monitoring/ data-dd-action-name="synthetic_monitoring in digital_experience">Synthetic Monitoring</a></li><li><a href=https://www.datadoghq.com/product/mobile-app-testing/ data-dd-action-name="mobile_app_testing in digital_experience">Mobile App Testing</a></li><li><a href=https://www.datadoghq.com/product/error-tracking/ data-dd-action-name="error_tracking in digital_experience">Error Tracking</a></li></ul></div><div class="product-subcategory related"><p class="subcategory-header fw-bold text-uppercase">Related Products</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/continuous-testing/ data-dd-action-name="continuous_testing in digital_experience">Continuous Testing</a></li><li><a href=https://www.datadoghq.com/product/platform/dashboards/ data-dd-action-name="dashboards in digital_experience">Dashboards</a></li><li><a href=https://www.datadoghq.com/product/apm/ data-dd-action-name="application_performance_monitoring in digital_experience">Application Performance Monitoring</a></li></ul></div></div></div><div class=product-category id=software-delivery-detail x-show="openCategory === 'software-delivery'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #6300D4 0%, #9C43FE 100%)"><div class=category-description-main><i class=icon-ci></i><div class=info><p class=category-header>Software Delivery</p><p class=category-tagline>Build, test, secure and ship quality code faster</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Software Delivery</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/internal-developer-portal/ data-dd-action-name="internal_developer_portal in software_delivery">Internal Developer Portal</a></li><li><a href=https://www.datadoghq.com/product/ci-cd-monitoring/ data-dd-action-name="ci_visibility in software_delivery">CI Visibility</a></li><li><a href=https://www.datadoghq.com/product/test-optimization/ data-dd-action-name="test_optimization in software_delivery">Test Optimization</a></li><li><a href=https://www.datadoghq.com/product/continuous-testing/ data-dd-action-name="continuous_testing in software_delivery">Continuous Testing</a></li><li><a href=https://www.datadoghq.com/product/platform/ides/ data-dd-action-name="ide_plugins in software_delivery">IDE Plugins</a></li><li><a href=https://www.datadoghq.com/product/platform/dora-metrics/ data-dd-action-name="dora_metrics in software_delivery">DORA Metrics</a></li><li><a href=https://www.datadoghq.com/product/feature-flags/ data-dd-action-name="feature_flags in software_delivery">Feature Flags</a></li><li><a href=https://www.datadoghq.com/product/code-coverage/ data-dd-action-name="code_coverage in software_delivery">Code Coverage</a></li><li><a href=https://www.datadoghq.com/product/software-delivery/ai-impact/ data-dd-action-name="ai_impact in software_delivery">AI Impact</a></li></ul></div><div class="product-subcategory related"><p class="subcategory-header fw-bold text-uppercase">Related Products</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/software-composition-analysis/ data-dd-action-name="software_composition_analysis in software_delivery">Software Composition Analysis</a></li><li><a href=https://www.datadoghq.com/product/apm/ data-dd-action-name="application_performance_monitoring in software_delivery">Application Performance Monitoring</a></li><li><a href=https://www.datadoghq.com/product/synthetic-monitoring/ data-dd-action-name="synthetic_monitoring in software_delivery">Synthetic Monitoring</a></li><li><a href=https://www.datadoghq.com/product/real-user-monitoring/ data-dd-action-name="browser_real_user_monitoring in software_delivery">Browser Real User Monitoring</a></li><li><a href=https://www.datadoghq.com/product/workflow-automation/ data-dd-action-name="workflow_automation in software_delivery">Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/platform/integrations/ data-dd-action-name="integrations in software_delivery">Integrations</a></li></ul></div></div></div><div class=product-category id=service-management-detail x-show="openCategory === 'service-management'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #FF0080 0%, #FF5E00 100%)"><div class=category-description-main><i class=icon-software-catalog></i><div class=info><p class=category-header>Service Management</p><p class=category-tagline>Integrated, streamlined workflows for faster time-to-resolution</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Service Management</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/incident-response/ data-dd-action-name="incident_response in service_management">Incident Response</a></li><li><a href=https://www.datadoghq.com/product/software-catalog/ data-dd-action-name="software_catalog in service_management">Software Catalog</a></li><li><a href=https://www.datadoghq.com/product/service-level-objectives/ data-dd-action-name="service_level_objectives in service_management">Service Level Objectives</a></li><li><a href=https://www.datadoghq.com/product/case-management/ data-dd-action-name="case_management in service_management">Case Management</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Actions</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/workflow-automation/ data-dd-action-name="workflow_automation in service_management">Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/app-builder/ data-dd-action-name="app_builder in service_management">App Builder</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Agentic & Embedded</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/ai/bits-investigation/ data-dd-action-name="bits_investigation in service_management">Bits Investigation</a></li><li><a href=https://www.datadoghq.com/product/platform/watchdog/ data-dd-action-name="watchdog in service_management">Watchdog</a></li><li><a href=https://www.datadoghq.com/product/event-management/ data-dd-action-name="event_management in service_management">Event Management</a></li></ul></div></div></div><div class=product-category id=ai-detail x-show="openCategory === 'ai'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #0060FF 0%, #8000FF 100%)"><div class=category-description-main><i class=icon-bits-ai></i><div class=info><p class=category-header>AI</p><p class=category-tagline>Monitor and improve model performance. Pinpoint root causes and detect anomalies</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">AI Observability</p><ul class=product-list><li><a href=https://www.datadoghq.com/products/ai/agent-observability/ data-dd-action-name="agent_observability in ai">Agent Observability</a></li><li><a href=https://www.datadoghq.com/product/gpu-monitoring/ data-dd-action-name="gpu_monitoring in ai">GPU Monitoring</a></li><li><a href=https://www.datadoghq.com/product/platform/integrations/#cat-aiml data-dd-action-name="ai_integrations in ai">AI Integrations</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Agentic & Embedded</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/ai/bits-ai-agents/ data-dd-action-name="bits_ai_agents in ai">Bits AI Agents</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-chat/ data-dd-action-name="bits_chat in ai">Bits Chat</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-agent-builder/ data-dd-action-name="bits_agent_builder in ai">Bits Agent Builder</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-code/ data-dd-action-name="bits_code in ai">Bits Code</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-investigation/ data-dd-action-name="bits_investigation in ai">Bits Investigation</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-security-analyst/ data-dd-action-name="bits_security_analyst in ai">Bits Security Analyst</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/ data-dd-action-name="mcp_server in ai">MCP Server</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/ data-dd-action-name="pup_cli in ai">Pup CLI</a></li><li><a href=https://www.datadoghq.com/product/ai/agent-directory/ data-dd-action-name="agent_directory in ai">Agent Directory</a></li></ul></div><div class="product-subcategory related"><p class="subcategory-header fw-bold text-uppercase">Related Products</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/incident-response/ data-dd-action-name="incident_response in ai">Incident Response</a></li><li><a href=https://www.datadoghq.com/product/workflow-automation/ data-dd-action-name="workflow_automation in ai">Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/apm/ data-dd-action-name="application_performance_monitoring in ai">Application Performance Monitoring</a></li><li><a href=https://www.datadoghq.com/product/universal-service-monitoring/ data-dd-action-name="universal_service_monitoring in ai">Universal Service Monitoring</a></li><li><a href=https://www.datadoghq.com/product/log-management/ data-dd-action-name="log_management in ai">Log Management</a></li></ul></div></div></div><div class=product-category id=platform-detail x-show="openCategory === 'platform'"><div class=category-description style="--cta-bg:linear-gradient(90deg, #8000FF 0%, #4300B0 100%)"><div class=category-description-main><i class=icon-dashboard></i><div class=info><p class=category-header>Platform Capabilities</p><p class=category-tagline>Built-in features & integrations that power the Datadog platform</p></div></div></div><div class="category-details d-flex justify-content-between gap-2"><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Built-in Features</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/ai/bits-ai-agents/ data-dd-action-name="bits_ai_agents in platform_capabilities">Bits AI Agents</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-agent-builder/ data-dd-action-name="bits_agent_builder in platform_capabilities">Bits Agent Builder</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-chat/ data-dd-action-name="bits_chat in platform_capabilities">Bits Chat</a></li><li><a href=https://www.datadoghq.com/product/metrics/ data-dd-action-name="metrics in platform_capabilities">Metrics</a></li><li><a href=https://www.datadoghq.com/product/platform/watchdog/ data-dd-action-name="watchdog in platform_capabilities">Watchdog</a></li><li><a href=https://www.datadoghq.com/product/platform/alerts/ data-dd-action-name="alerts in platform_capabilities">Alerts</a></li><li><a href=https://www.datadoghq.com/product/platform/dashboards/ data-dd-action-name="dashboards in platform_capabilities">Dashboards</a></li><li><a href=https://docs.datadoghq.com/notebooks/ data-dd-action-name="notebooks in platform_capabilities">Notebooks</a></li><li><a href="https://docs.datadoghq.com/service_management/mobile/?tab=ios" data-dd-action-name="mobile_app in platform_capabilities">Mobile App</a></li><li><a href=https://www.datadoghq.com/product/fleet-automation/ data-dd-action-name="fleet_automation in platform_capabilities">Fleet Automation</a></li><li><a href=https://www.datadoghq.com/product/governance-console/ data-dd-action-name="governance_console in platform_capabilities">Governance Console</a></li><li><a href="https://docs.datadoghq.com/account_management/rbac/?tab=datadogapplication" data-dd-action-name="access_control in platform_capabilities">Access Control</a></li><li><a href=https://www.datadoghq.com/product/platform/dora-metrics/ data-dd-action-name="dora_metrics in platform_capabilities">DORA Metrics</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Workflows & Collaboration</p><ul class=product-list><li><a href=https://www.datadoghq.com/product/incident-response/ data-dd-action-name="incident_response in platform_capabilities">Incident Response</a></li><li><a href=https://www.datadoghq.com/product/case-management/ data-dd-action-name="case_management in platform_capabilities">Case Management</a></li><li><a href=https://www.datadoghq.com/product/event-management/ data-dd-action-name="event_management in platform_capabilities">Event Management</a></li><li><a href=https://www.datadoghq.com/product/workflow-automation/ data-dd-action-name="workflow_automation in platform_capabilities">Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/app-builder/ data-dd-action-name="app_builder in platform_capabilities">App Builder</a></li><li><a href=https://www.datadoghq.com/product/cloudcraft/ data-dd-action-name="cloudcraft in platform_capabilities">Cloudcraft</a></li><li><a href=https://docs.datadoghq.com/account_management/teams/ data-dd-action-name="teams in platform_capabilities">Teams</a></li></ul></div><div class=product-subcategory><p class="subcategory-header fw-bold text-uppercase">Extensibility</p><ul class=product-list><li><a href=https://www.datadoghq.com/solutions/opentelemetry/ data-dd-action-name="opentelemetry in platform_capabilities">OpenTelemetry</a></li><li><a href=https://www.datadoghq.com/product/platform/integrations/ data-dd-action-name="integrations in platform_capabilities">Integrations</a></li><li><a href=https://www.datadoghq.com/product/platform/ides/ data-dd-action-name="ide_plugins in platform_capabilities">IDE Plugins</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/ data-dd-action-name="mcp_server in platform_capabilities">MCP Server</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/ data-dd-action-name="pup_cli in platform_capabilities">Pup CLI</a></li><li><a href=https://www.datadoghq.com/product/ai/agent-directory/ data-dd-action-name="agent_directory in platform_capabilities">Agent Directory</a></li><li><a href=https://docs.datadoghq.com/api/ data-dd-action-name="api in platform_capabilities">API</a></li><li><a href=https://www.datadoghq.com/marketplacepartners/ data-dd-action-name="marketplace in platform_capabilities">Marketplace</a></li></ul></div></div></div></div></div></div></li><li><a class=customers-menu href=https://www.datadoghq.com/customers/><span class=menu-text>Customers</span></a></li><li><a class=pricing-menu href=https://www.datadoghq.com/pricing/><span class=menu-text>Pricing</span></a></li><li class="dropdown solutions-dropdown"><a class=dropdown href=https://www.datadoghq.com/>Solutions</a><ul class="dropdown-menu solutions-menu p-2"><div class=row><div class=col-4><p class="text-black small text-uppercase fw-semibold no-event mb-0">Industry</p><ul class="list-unstyled mt-0"><li><a class=d-block href=https://www.datadoghq.com/solutions/financial-services/ data-dd-action-name="financial_services in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Financial Services</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/manufacturing-logistics/ data-dd-action-name="manufacturing_and_logistics in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Manufacturing & Logistics</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/healthcare/ data-dd-action-name="healthcare_and_life_sciences in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Healthcare/Life Sciences</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/retail-ecommerce/ data-dd-action-name="retail_and_ecommerce in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Retail/E-Commerce</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/government/ data-dd-action-name="government in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Government</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/education/ data-dd-action-name="education in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Education</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/media-entertainment/ data-dd-action-name="media_and_entertainment in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Media & Entertainment</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/technology/ data-dd-action-name="technology in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Technology</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/gaming/ data-dd-action-name="gaming in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Gaming</span></a></li></ul></div><div class=col-4><p class="text-black small text-uppercase fw-semibold no-event mb-0">Technology</p><ul class="list-unstyled mt-0"><li><a class=d-block href=https://www.datadoghq.com/solutions/aws/ data-dd-action-name="amazon_web_services_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Amazon Web Services Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/azure/ data-dd-action-name="azure_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Azure Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/googlecloud/ data-dd-action-name="google_cloud_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Google Cloud Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/oci-monitoring/ data-dd-action-name="oci_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Oracle Cloud Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/kubernetes/ data-dd-action-name="kubernetes_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Kubernetes Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/openshift/ data-dd-action-name="red_hat_openshift in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Red Hat OpenShift</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/pivotal-platform/ data-dd-action-name="pivotal_platform in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Pivotal Platform</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/openai/ data-dd-action-name="openai in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">OpenAI</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/sap-monitoring/ data-dd-action-name="sap_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">SAP Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/opentelemetry/ data-dd-action-name="opentelemetry in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">OpenTelemetry</span></a></li></ul></div><div class=col-4><p class="text-black small text-uppercase fw-semibold no-event mb-0">Use Case</p><ul class="list-unstyled mt-0"><li><a class=d-block href=https://www.datadoghq.com/solutions/application-security/ data-dd-action-name="application_security in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Application Security</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/cloud-migration/ data-dd-action-name="cloud_migration in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Cloud Migration</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/monitoring-consolidation/ data-dd-action-name="monitoring_consolidation in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Monitoring Consolidation</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/unified-commerce-monitoring/ data-dd-action-name="unified_commerce_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Unified Commerce Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/soar/ data-dd-action-name="soar in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">SOAR</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/devops/ data-dd-action-name="devops in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">DevOps</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/finops/ data-dd-action-name="finops in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">FinOps</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/shift-left-testing/ data-dd-action-name="shift_left_testing in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Shift-Left Testing</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/digital-experience-monitoring/ data-dd-action-name="digital_experience_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Digital Experience Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/security-analytics/ data-dd-action-name="security_analytics in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Security Analytics</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/security/cis-benchmarks/aws/ data-dd-action-name="compliance_for_cis_benchmarks in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Compliance for CIS Benchmarks</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/hybrid-cloud-monitoring/ data-dd-action-name="hybrid_cloud_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Hybrid Cloud Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/iot-monitoring/ data-dd-action-name="iot_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Edge Device Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/real-time-business-intelligence/ data-dd-action-name="real_time_bi in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Real-Time BI</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/on-premises-monitoring/ data-dd-action-name="on_premises_monitoring in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">On-Premises Monitoring</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/log-analysis-and-correlation/ data-dd-action-name="log_analysis_and_correlation in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">Log Analysis & Correlation</span></a></li><li><a class=d-block href=https://www.datadoghq.com/solutions/cnapp/ data-dd-action-name="cnapp in Solutions"><i class=icon-></i>
<span class="menu-text d-inline-flex">CNAPP</span></a></li></ul></div></div></ul></li><li><a class=docs-menu href=https://docs.datadoghq.com/><span class=menu-text>Docs</span></a></li></ul><div><a href=https://www.datadoghq.com/ class="js-logo-download d-none d-lg-flex flex-column align-items-center justify-content-center position-relative"><img height=75 class=bits-logo-lg src="https://corp.dd-static.net/img/dd_logo_n_70x75.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;w=70&amp;h=75" srcset="https://corp.dd-static.net/img/dd_logo_n_70x75.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;w=70&amp;h=75 1x, https://corp.dd-static.net/img/dd_logo_n_70x75.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;w=70&amp;h=75&dpr=2 2x" alt=DataDog>
<img class=datadog-text-logo-lg height=14 src="https://corp.dd-static.net/img/dd-logo-n-200.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;h=14&amp;auto=format&amp;w=807" srcset="https://corp.dd-static.net/img/dd-logo-n-200.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;h=14&amp;auto=format&amp;w=807 1x, https://corp.dd-static.net/img/dd-logo-n-200.png?ch=Width,DPR&amp;fit=max&amp;auto=format&amp;h=14&amp;auto=format&amp;w=807&dpr=2 2x" alt=DataDog><div class="shadow-card-nohover position-absolute bg-white text-start logo-download-div js-logo-download-div" style=display:none><div class="position-absolute svg-container w-100 text-center"><svg class='<nil>' width="24px" height="24px" viewBox="0 0 27 14" version="1.1" xml:space="preserve" x="0px" y="0px">
	<title>White modal up arrow</title>
    <g><polygon class="st0" points="26.94,14 0.06,14 13.5,0.56" fill="#ffffff"/></g>
</svg></div><p class="small text-uppercase fw-semibold">Looking for Datadog logos?</p><p class="font-18 text-black">You can find the logo assets on our press page.</p><div class="js-logo-download-btn btn btn-small btn-primary btn-outline mt-2 w-100 cursor-pointer">Download Media Assets</div></div></a></div><ul class="d-flex flex-row align-items-center list-unstyled m-0 justify-content-end flex-grow-1"><li class=dropdown><a href=https://www.datadoghq.com/about/leadership/ class=dropdown>About</a><ul class="dropdown-menu p-2" aria-labelledby=dropdownMenuButton><li><a class=d-block href=https://www.datadoghq.com/about/contact/><span class=menu-text>Contact</span></a></li><li><a class=d-block href=https://www.datadoghq.com/partner/network/><span class=menu-text>Partners</span></a></li><li><a class=d-block href=https://www.datadoghq.com/about/latest-news/press-releases/><span class=menu-text>Newsroom</span></a></li><li><a class=d-block href=https://www.datadoghq.com/events-webinars/><span class=menu-text>Events & Webinars</span></a></li><li><a class=d-block href=https://www.datadoghq.com/about/leadership/><span class=menu-text>Leadership</span></a></li><li><a class=d-block href=https://careers.datadoghq.com/><span class=menu-text>Careers</span></a></li><li><a class=d-block href=https://www.datadoghq.com/about/analyst/><span class=menu-text>Analyst Reports</span></a></li><li><a class=d-block href=https://investors.datadoghq.com/><span class=menu-text>Investor Relations</span></a></li><li><a class=d-block href=https://www.datadoghq.com/esg-report/><span class=menu-text>ESG Report</span></a></li><li><a class=d-block href=https://www.datadoghq.com/trust/><span class=menu-text>Trust Hub</span></a></li></ul></li><li class=dropdown><a href=https://www.datadoghq.com/blog/ class=dropdown>Blog</a><ul class="dropdown-menu p-2" aria-labelledby=dropdownMenuButton><li><a class=d-block href=https://www.datadoghq.com/blog/><span class=menu-text>The Monitor</span></a></li><li><a class=d-block href=https://www.datadoghq.com/blog/engineering/><span class=menu-text>Engineering</span></a></li><li><a class=d-block href=https://www.datadoghq.com/blog/ai/><span class=menu-text>AI</span></a></li><li><a class=d-block href=https://securitylabs.datadoghq.com/><span class=menu-text>Security Labs</span></a></li></ul></li><li class=final><a href=https://app.datadoghq.com/ data-event-category=Signup data-event-action="Step 1 Top Right Initiated" data-event-label=" {{url path}}"><span class=menu-text>Login</span></a></li><li id=search-toggle class=final><a aria-label="Search toggle" href=# class="js-search-toggle d-inline-block"><button type=button aria-label="Open search bar."><svg class='<nil>' width="21px" viewBox="0 0 25 23" fill="none" xmlns="http://www.w3.org/2000/svg" style="height: calc(21px + 2px)">
<circle cx="10.5895" cy="10.1072" r="7.14106" transform="rotate(16.3878 10.5895 10.1072)" stroke="#555" stroke-width="2"/>
<line x1="14.9066" y1="15.4927" x2="20.3051" y2="22.3839" stroke="#555" stroke-width="2"/>
</svg></button></a></li><li class=final><a class="sign-up-trigger btn btn-gradient js-cta-topRight" href=https://www.datadoghq.com/ data-event-category=Signup data-event-action="Step 1 Top Right Initiated" data-event-label=" {{url path}}"><span class="d-none d-xl-block">GET STARTED FREE</span>
<span class="d-block d-xl-none">Free Trial</span></a></li></ul></div><div class="d-flex d-lg-none align-items-center justify-content-center"><a href=https://www.datadoghq.com/><img src="https://corp.dd-static.net/img/datadog_rbg_n_2x.png?format=png" class="bits-logo-mobile d-inline-block" alt="Datadog Logo" width=157 height=40></a></div><button type=button class="navbar-toggler ms-auto me-0" data-bs-toggle data-bs-target=#collapseExample aria-expanded=false aria-controls=collapseExample>
<span class=visually-hidden>Toggle navigation</span>
<span class=icon-bar></span>
<span class=icon-bar></span>
<span class=icon-bar></span></button></div></nav><div id=mobile-nav-bg></div><div id=mobile-nav><ul><li><div class="mobile-nav-search-wrapper position-relative"><a aria-label="Search toggle" href=https://www.datadoghq.com/ class="js-search-toggle text-uppercase fw-semibold"><div class="nav-menu-item ms-2"><button type=button aria-label="Open search bar."><svg class='<nil>' width="18px" viewBox="0 0 25 23" fill="none" xmlns="http://www.w3.org/2000/svg" style="height: calc(18px + 2px)">
<circle cx="10.5895" cy="10.1072" r="7.14106" transform="rotate(16.3878 10.5895 10.1072)" stroke="#555" stroke-width="2"/>
<line x1="14.9066" y1="15.4927" x2="20.3051" y2="22.3839" stroke="#555" stroke-width="2"/>
</svg></button></div></a><div class="search-bar collapsed" data-search-url=https://www.datadoghq.com/search/></div></div></li><li class=dropdown><a href=# class="dropdown-toggle text-uppercase fw-semibold" data-bs-toggle=dropdown role=button aria-haspopup=true aria-expanded=true data-dd-action-name="Product Dropdown on Mobile"><div class="nav-menu-item ms-2">Product
<span class=caret><svg viewBox="0 0 17.78 10.51" width="10px">
                                <polyline class="dropdown-arrow" points="16.92 1.14 8.92 9.14 0.92 1.14" />
                            </svg></span></div></a><ul class=dropdown-menu id=product-mobile-menu><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-host-map></i>Infrastructure</p><ul><li><a href=https://www.datadoghq.com/product/infrastructure-monitoring/>Infrastructure Monitoring</a></li><li><a href=https://www.datadoghq.com/product/metrics/>Metrics</a></li><li><a href=https://www.datadoghq.com/product/container-monitoring/>Container Monitoring</a></li><li><a href=https://www.datadoghq.com/product/kubernetes-autoscaling/>Kubernetes Autoscaling</a></li><li><a href=https://www.datadoghq.com/product/network-monitoring/>Network Monitoring</a></li><li><a href=https://www.datadoghq.com/product/serverless-monitoring/>Serverless</a></li><li><a href=https://www.datadoghq.com/product/cloud-cost-management/>Cloud Cost Management</a></li><li><a href=https://www.datadoghq.com/product/cloudcraft/>Cloudcraft</a></li><li><a href=https://www.datadoghq.com/product/storage-management/>Storage Management</a></li><li><a href=https://www.datadoghq.com/product/gpu-monitoring/>GPU Monitoring</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-apm></i>Applications</p><ul><li><a href=https://www.datadoghq.com/product/apm/>Application Performance Monitoring</a></li><li><a href=https://www.datadoghq.com/product/universal-service-monitoring/>Universal Service Monitoring</a></li><li><a href=https://www.datadoghq.com/product/code-profiling/>Continuous Profiler</a></li><li><a href=https://www.datadoghq.com/product/dynamic-instrumentation/>Dynamic Instrumentation</a></li><li><a href=https://www.datadoghq.com/products/ai/agent-observability/>Agent Observability</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-database-2></i>Data</p><ul><li><a href=https://www.datadoghq.com/product/database-monitoring/>Database Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-streams-monitoring/>Data Streams Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-observability/quality-monitoring/>Quality Monitoring</a></li><li><a href=https://www.datadoghq.com/product/data-observability/jobs-monitoring/>Jobs Monitoring</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-log></i>Logs</p><ul><li><a href=https://www.datadoghq.com/product/log-management/>Log Management</a></li><li><a href=https://www.datadoghq.com/product/sensitive-data-scanner/>Sensitive Data Scanner</a></li><li><a href=https://www.datadoghq.com/product/audit-trail/>Audit Trail</a></li><li><a href=https://www.datadoghq.com/product/observability-pipelines/>Observability Pipelines</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-security-platform></i>Security</p><ul><li><a href=https://www.datadoghq.com/products/security/>Overview</a></li><li><a href=https://www.datadoghq.com/product/code-security/>Code Security</a></li><li><a href=https://www.datadoghq.com/product/software-composition-analysis/>Software Composition Analysis</a></li><li><a href=https://www.datadoghq.com/product/sast/>Static Code Analysis (SAST)</a></li><li><a href=https://www.datadoghq.com/product/iast/>Runtime Code Analysis (IAST)</a></li><li><a href=https://www.datadoghq.com/product/iac-security>IaC Security</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/>Cloud Security</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#posture-management>Cloud Security Posture Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#entitlement-management>Cloud Infrastructure Entitlement Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#vulnerability-management>Vulnerability Management</a></li><li><a href=https://www.datadoghq.com/product/cloud-security/#compliance>Compliance</a></li><li><a href=https://www.datadoghq.com/product/cloud-siem/>Cloud SIEM</a></li><li><a href=https://www.datadoghq.com/product/workload-protection/>Workload Protection</a></li><li><a href=https://www.datadoghq.com/product/app-and-api-protection/>App and API Protection</a></li><li><a href=https://www.datadoghq.com/product/sensitive-data-scanner/>Sensitive Data Scanner</a></li><li><a href=https://securitylabs.datadoghq.com/>Security Labs Research</a></li><li><a href=https://opensource.datadoghq.com/>Open Source Projects</a></li><li><a href=https://www.datadoghq.com/product/secret-scanning/>Secret Scanning</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-rum></i>Digital Experience</p><ul><li><a href=https://www.datadoghq.com/product/real-user-monitoring/>Browser Real User Monitoring</a></li><li><a href=https://www.datadoghq.com/product/real-user-monitoring/mobile-rum/>Mobile Real User Monitoring</a></li><li><a href=https://www.datadoghq.com/product/product-analytics/>Product Analytics</a></li><li><a href=https://www.datadoghq.com/product/experiments/>Experiments</a></li><li><a href=https://www.datadoghq.com/product/real-user-monitoring/session-replay/>Session Replay</a></li><li><a href=https://www.datadoghq.com/product/synthetic-monitoring/>Synthetic Monitoring</a></li><li><a href=https://www.datadoghq.com/product/mobile-app-testing/>Mobile App Testing</a></li><li><a href=https://www.datadoghq.com/product/error-tracking/>Error Tracking</a></li><li><a href=https://www.datadoghq.com/product/byoc-logs/>BYOC Log Management</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-ci></i>Software Delivery</p><ul><li><a href=https://www.datadoghq.com/product/internal-developer-portal/>Internal Developer Portal</a></li><li><a href=https://www.datadoghq.com/product/ci-cd-monitoring/>CI Visibility</a></li><li><a href=https://www.datadoghq.com/product/test-optimization/>Test Optimization</a></li><li><a href=https://www.datadoghq.com/product/continuous-testing/>Continuous Testing</a></li><li><a href=https://www.datadoghq.com/product/platform/ides/>IDE Plugins</a></li><li><a href=https://www.datadoghq.com/product/feature-flags/>Feature Flags</a></li><li><a href=https://www.datadoghq.com/product/code-coverage/>Code Coverage</a></li><li><a href=https://www.datadoghq.com/product/software-delivery/ai-impact/>AI Impact</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-software-catalog></i>Service Management</p><ul><li><a href=https://www.datadoghq.com/product/event-management/>Event Management</a></li><li><a href=https://www.datadoghq.com/product/software-catalog/>Software Catalog</a></li><li><a href=https://www.datadoghq.com/product/service-level-objectives/>Service Level Objectives</a></li><li><a href=https://www.datadoghq.com/product/incident-response/>Incident Response</a></li><li><a href=https://www.datadoghq.com/product/case-management/>Case Management</a></li><li><a href=https://www.datadoghq.com/product/workflow-automation/>Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/app-builder/>App Builder</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-investigation/>Bits Investigation</a></li><li><a href=https://www.datadoghq.com/product/platform/watchdog/>Watchdog</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-bits-ai></i>AI</p><ul><li><a href=https://www.datadoghq.com/products/ai/agent-observability/>Agent Observability</a></li><li><a href=https://www.datadoghq.com/product/gpu-monitoring/>GPU Monitoring</a></li><li><a href=https://www.datadoghq.com/product/platform/integrations/#cat-aiml>AI Integrations</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-ai-agents/>Bits AI Agents</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-chat/>Bits Chat</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-agent-builder/>Bits Agent Builder</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-code/>Bits Code</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-investigation/>Bits Investigation</a></li><li><a href=https://www.datadoghq.com/product/ai/bits-security-analyst/>Bits Security Analyst</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/>MCP Server</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/>Pup CLI</a></li><li><a href=https://www.datadoghq.com/product/ai/agent-directory/>Agent Directory</a></li></ul></li><li><p class="mobile-product-category sticky-top bg-white"><i class=icon-dashboard></i>Platform Capabilities</p><ul><li><a href=https://www.datadoghq.com/product/ai/bits-ai-agents/>Bits AI Agents</a></li><li><a href=https://www.datadoghq.com/product/metrics/>Metrics</a></li><li><a href=https://www.datadoghq.com/product/platform/watchdog/>Watchdog</a></li><li><a href=https://www.datadoghq.com/product/platform/alerts/>Alerts</a></li><li><a href=https://www.datadoghq.com/product/platform/dashboards/>Dashboards</a></li><li><a href=https://docs.datadoghq.com/notebooks/>Notebooks</a></li><li><a href="https://docs.datadoghq.com/service_management/mobile/?tab=ios">Mobile App</a></li><li><a href=https://www.datadoghq.com/product/fleet-automation/>Fleet Automation</a></li><li><a href=https://www.datadoghq.com/product/governance-console/>Governance Console</a></li><li><a href="https://docs.datadoghq.com/account_management/rbac/?tab=datadogapplication">Access Control</a></li><li><a href=https://www.datadoghq.com/product/incident-response/>Incident Response</a></li><li><a href=https://www.datadoghq.com/product/case-management/>Case Management</a></li><li><a href=https://www.datadoghq.com/product/event-management/>Event Management</a></li><li><a href=https://www.datadoghq.com/product/workflow-automation/>Workflow Automation</a></li><li><a href=https://www.datadoghq.com/product/app-builder/>App Builder</a></li><li><a href=https://www.datadoghq.com/product/cloudcraft/>Cloudcraft</a></li><li><a href=https://docs.datadoghq.com/account_management/teams/>Teams</a></li><li><a href=https://www.datadoghq.com/solutions/opentelemetry/>OpenTelemetry</a></li><li><a href=https://www.datadoghq.com/product/platform/integrations/>Integrations</a></li><li><a href=https://www.datadoghq.com/product/platform/ides/>IDE Plugins</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/>MCP Server</a></li><li><a href=https://www.datadoghq.com/product/ai/mcp-server/>Pup CLI</a></li><li><a href=https://www.datadoghq.com/product/ai/agent-directory/>Agent Directory</a></li><li><a href=https://docs.datadoghq.com/api/>API</a></li><li><a href=https://www.datadoghq.com/marketplacepartners/>Marketplace</a></li><li><a href=https://www.datadoghq.com/product/platform/dora-metrics/>DORA Metrics</a></li></ul></li></ul></li><li><a href=https://www.datadoghq.com/customers/ class="text-uppercase fw-semibold"><div class="nav-menu-item ms-2">Customers</div></a></li><li><a href=https://www.datadoghq.com/pricing/ class="text-uppercase fw-semibold"><div class="nav-menu-item ms-2">Pricing</div></a></li><li class=dropdown><a href=# class="dropdown-toggle text-uppercase fw-semibold" data-bs-toggle=dropdown role=button aria-haspopup=true aria-expanded=true data-dd-action-name="Solutions Dropdown on Mobile"><div class="nav-menu-item ms-2">Solutions
<span class=caret><svg viewBox="0 0 17.78 10.51" width="10px">
                                <polyline class="dropdown-arrow" points="16.92 1.14 8.92 9.14 0.92 1.14" />
                            </svg></span></div></a><ul class=dropdown-menu id=solutions-mobile-menu><p class="ps-6 py-1 font-16 text-uppercase fw-semibold sticky-top bg-white">Industry</p><li><a href=https://www.datadoghq.com/solutions/financial-services/><div class=nav-menu-item-children>Financial Services</div></a></li><li><a href=https://www.datadoghq.com/solutions/manufacturing-logistics/><div class=nav-menu-item-children>Manufacturing & Logistics</div></a></li><li><a href=https://www.datadoghq.com/solutions/healthcare/><div class=nav-menu-item-children>Healthcare/Life Sciences</div></a></li><li><a href=https://www.datadoghq.com/solutions/retail-ecommerce/><div class=nav-menu-item-children>Retail/E-Commerce</div></a></li><li><a href=https://www.datadoghq.com/solutions/government/><div class=nav-menu-item-children>Government</div></a></li><li><a href=https://www.datadoghq.com/solutions/education/><div class=nav-menu-item-children>Education</div></a></li><li><a href=https://www.datadoghq.com/solutions/media-entertainment/><div class=nav-menu-item-children>Media & Entertainment</div></a></li><li><a href=https://www.datadoghq.com/solutions/technology/><div class=nav-menu-item-children>Technology</div></a></li><li><a href=https://www.datadoghq.com/solutions/gaming/><div class=nav-menu-item-children>Gaming</div></a></li><p class="ps-6 py-1 font-16 text-uppercase fw-semibold sticky-top bg-white">Technology</p><li><a href=https://www.datadoghq.com/solutions/aws/><div class=nav-menu-item-children>Amazon Web Services Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/azure/><div class=nav-menu-item-children>Azure Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/googlecloud/><div class=nav-menu-item-children>Google Cloud Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/oci-monitoring/><div class=nav-menu-item-children>Oracle Cloud Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/kubernetes/><div class=nav-menu-item-children>Kubernetes Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/openshift/><div class=nav-menu-item-children>Red Hat OpenShift</div></a></li><li><a href=https://www.datadoghq.com/solutions/pivotal-platform/><div class=nav-menu-item-children>Pivotal Platform</div></a></li><li><a href=https://www.datadoghq.com/solutions/openai/><div class=nav-menu-item-children>OpenAI</div></a></li><li><a href=https://www.datadoghq.com/solutions/sap-monitoring/><div class=nav-menu-item-children>SAP Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/opentelemetry/><div class=nav-menu-item-children>OpenTelemetry</div></a></li><p class="ps-6 py-1 font-16 text-uppercase fw-semibold sticky-top bg-white">Use Case</p><li><a href=https://www.datadoghq.com/solutions/application-security/><div class=nav-menu-item-children>Application Security</div></a></li><li><a href=https://www.datadoghq.com/solutions/cloud-migration/><div class=nav-menu-item-children>Cloud Migration</div></a></li><li><a href=https://www.datadoghq.com/solutions/monitoring-consolidation/><div class=nav-menu-item-children>Monitoring Consolidation</div></a></li><li><a href=https://www.datadoghq.com/solutions/unified-commerce-monitoring/><div class=nav-menu-item-children>Unified Commerce Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/soar/><div class=nav-menu-item-children>SOAR</div></a></li><li><a href=https://www.datadoghq.com/solutions/devops/><div class=nav-menu-item-children>DevOps</div></a></li><li><a href=https://www.datadoghq.com/solutions/finops/><div class=nav-menu-item-children>FinOps</div></a></li><li><a href=https://www.datadoghq.com/solutions/shift-left-testing/><div class=nav-menu-item-children>Shift-Left Testing</div></a></li><li><a href=https://www.datadoghq.com/solutions/digital-experience-monitoring/><div class=nav-menu-item-children>Digital Experience Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/security-analytics/><div class=nav-menu-item-children>Security Analytics</div></a></li><li><a href=https://www.datadoghq.com/solutions/security/cis-benchmarks/aws/><div class=nav-menu-item-children>Compliance for CIS Benchmarks</div></a></li><li><a href=https://www.datadoghq.com/solutions/hybrid-cloud-monitoring/><div class=nav-menu-item-children>Hybrid Cloud Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/iot-monitoring/><div class=nav-menu-item-children>Edge Device Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/real-time-business-intelligence/><div class=nav-menu-item-children>Real-Time BI</div></a></li><li><a href=https://www.datadoghq.com/solutions/on-premises-monitoring/><div class=nav-menu-item-children>On-Premises Monitoring</div></a></li><li><a href=https://www.datadoghq.com/solutions/log-analysis-and-correlation/><div class=nav-menu-item-children>Log Analysis & Correlation</div></a></li><li><a href=https://www.datadoghq.com/solutions/cnapp/><div class=nav-menu-item-children>CNAPP</div></a></li></ul></li><li class=dropdown><a href=# class="dropdown-toggle text-uppercase fw-semibold" data-bs-toggle=dropdown role=button aria-haspopup=true aria-expanded=true data-dd-action-name="About Dropdown on Mobile"><div class="ms-2 nav-menu-item">About
<span class=caret><svg viewBox="0 0 17.78 10.51" width="10px">
                                <polyline class="dropdown-arrow" points="16.92 1.14 8.92 9.14 0.92 1.14" />
                            </svg></span></div></a><ul class=dropdown-menu><li><a href=https://www.datadoghq.com/about/contact/><div class=nav-menu-item-children>Contact</div></a></li><li><a href=https://www.datadoghq.com/partner/network/><div class=nav-menu-item-children>Partners</div></a></li><li><a href=https://www.datadoghq.com/about/latest-news/press-releases/><div class=nav-menu-item-children>Newsroom</div></a></li><li><a href=https://www.datadoghq.com/events-webinars/><div class=nav-menu-item-children>Events & Webinars</div></a></li><li><a href=https://www.datadoghq.com/about/leadership/><div class=nav-menu-item-children>Leadership</div></a></li><li><a href=https://careers.datadoghq.com/><div class=nav-menu-item-children>Careers</div></a></li><li><a href=https://www.datadoghq.com/about/analyst/><div class=nav-menu-item-children>Analyst Reports</div></a></li><li><a href=https://investors.datadoghq.com/><div class=nav-menu-item-children>Investor Relations</div></a></li><li><a href=https://www.datadoghq.com/esg-report/><div class=nav-menu-item-children>ESG Report</div></a></li><li><a href=https://www.datadoghq.com/trust/><div class=nav-menu-item-children>Trust Hub</div></a></li></ul></li><li class=dropdown><a href=# class="dropdown-toggle text-uppercase fw-semibold" data-bs-toggle=dropdown role=button aria-haspopup=true aria-expanded=true data-dd-action-name="Blog Dropdown on Mobile"><div class="ms-2 nav-menu-item">Blog
<span class=caret><svg viewBox="0 0 17.78 10.51" width="10px">
                                <polyline class="dropdown-arrow" points="16.92 1.14 8.92 9.14 0.92 1.14" />
                            </svg></span></div></a><ul class=dropdown-menu><li><a href=https://www.datadoghq.com/blog/><div class=nav-menu-item-children>The Monitor</div></a></li><li><a href=https://www.datadoghq.com/blog/engineering/><div class=nav-menu-item-children>Engineering</div></a></li><li><a href=https://www.datadoghq.com/blog/ai/><div class=nav-menu-item-children>AI</div></a></li><li><a href=https://securitylabs.datadoghq.com/><div class=nav-menu-item-children>Security Labs</div></a></li></ul></li><li class=final><a href=https://docs.datadoghq.com/ class="text-uppercase fw-semibold" aria-label="Docs link"><div class="ms-2 nav-menu-item">Docs</div></a></li><li class=final><a href=https://app.datadoghq.com/ class="text-uppercase fw-semibold" aria-label="Login link"><div class="ms-2 nav-menu-item">Login</div></a></li><li class=final><a href=https://www.datadoghq.com/ class="text-uppercase fw-semibold btn btn-default btn-info btn-outline outline knockout-around sign-up sign-up sign-up-trigger" data-event-category=Signup data-event-action="Step 1 Top Right Initiated" data-event-label=" {{url path}}" aria-label="Get Started link"><div class="ms-2 nav-menu-item">Get Started</div></a></li></ul></div><div class="search-bar collapsed" data-search-url=https://www.datadoghq.com/search/></div><script src=https://www.datadoghq.com/assets/search-bar.min.058fbe3247775ce661f3dd2c2e676c8694c536994ddcb3b0e23cac1cd6517014.js defer></script></div><div id=myLauncher class="icon-chat-widget d-none" data-dd-action-name="content: widget: chat"><figure class="mb-0 tw-mb-0 position-relative"><img loading=lazy width height alt=icons/icon-chat-widget src="https://corp.dd-static.net/img/icons/icon-chat-widget.png?format=png&amp;auto=format&amp;fit=max"></figure><span class="d-none d-md-inline-block">Chat</span></div><div class=select-container data-nosnippet x-data="{
        fedRegionSelected: false,
        allowed_regions: ['us','us-fed','eu','ap1','ap2','uk1',],
        allowed_regions_display: [
          {
            'key': 'us',
            'display_name': 'US (US1, US3, US5)'
          },
        
          {
            'key': 'us-fed',
            'display_name': 'US1-FED'
          },
        
          {
            'key': 'eu',
            'display_name': 'EU1'
          },
        
          {
            'key': 'ap1',
            'display_name': 'AP1'
          },
        
          {
            'key': 'ap2',
            'display_name': 'AP2'
          },
        
          {
            'key': 'uk1',
            'display_name': 'UK1'
          },
        ],
        region: '',
        product: '',
        fedProduct: false,
        productAltNames: [
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
                
            
            { product_name: 'AI Credits', alt_name: 'ai-credits' },
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Code Coverage', alt_name: 'code-coverage' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Log Management', alt_name: 'log-management' },
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Feature Flags', alt_name: 'feature-flags' },
          
        
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Infrastructure', alt_name: 'infrastructure-monitoring' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Application Performance Monitoring', alt_name: 'apm' },
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Workload Protection', alt_name: 'workload-protection' },
          
        
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'CI Pipeline Visibility', alt_name: 'ci-cd-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Continuous Testing', alt_name: 'continuous-testing' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Test Optimization', alt_name: 'test-optimization' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'App Builder', alt_name: 'app-builder' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Incident Response', alt_name: 'incident-response' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Event Management', alt_name: 'event-management' },
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Workflow Automation', alt_name: 'workflow-automation' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Error Tracking', alt_name: 'error-tracking' },
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Product Analytics', alt_name: 'product-analytics' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Storage Management', alt_name: 'storage-management' },
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Edge Device Monitoring', alt_name: 'edge-device-monitoring' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Kubernetes Autoscaling', alt_name: 'kubernetes-autoscaling' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'OTLP APM Ingest', alt_name: 'managed-platform-otlp' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Experiments', alt_name: 'experiments' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Serverless Monitoring', alt_name: 'serverless-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
                
            
            { product_name: 'Agent Observability', alt_name: 'llm-observability' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Real User Monitoring & Session Replay', alt_name: 'real-user-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Synthetic Testing & Monitoring', alt_name: 'synthetic-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Network Monitoring', alt_name: 'network-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Sensitive Data Scanner', alt_name: 'sensitive-data-scanner' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Universal Service Monitoring', alt_name: 'universal-service-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Cloud SIEM', alt_name: 'cloud-siem' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Datadog Disaster Recovery', alt_name: 'datadog-disaster-recovery' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Audit Trail', alt_name: 'audit-trail' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Cloud Security', alt_name: 'cloud-security' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Data Streams Monitoring', alt_name: 'data-streams-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Cloud Cost Management', alt_name: 'cloud-cost-management' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Database Monitoring', alt_name: 'database-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Observability Pipelines', alt_name: 'observability-pipelines' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'App and API Protection', alt_name: 'app-and-api-protection' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Archive Search', alt_name: 'archive-search' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
                
            
            { product_name: 'Jobs Monitoring', alt_name: 'jobs-monitoring' },
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
                
            
            { product_name: 'Quality Monitoring', alt_name: 'quality-monitoring' },
          
        
          
        
          
            
            // get the directory name between product/ and trailing /
            
            // for products in subdirectories, keep only the last entry of the alt_name_slice array
            
            
            { product_name: 'Code Security', alt_name: 'code-security' },
          
        
          
        
        ],
        removeQueryParam(param) {
            myURL = new URL(window.location.href)
            myURL.searchParams.delete(param)
            history.pushState(null, '', myURL)
        },
        updateQueryParam(param, value) {
            myURL = new URL(window.location.href)
            myURL.searchParams.set(param, value)
            history.pushState(null, '', myURL)
        },
        getProductParam() {
            let param = URLParams.get('product') || 'infrastructure-monitoring';
            // temporary solution to assert that APM content is displayed on load if a legacy APM query param is included in the URL
            if (param === 'application-performance-monitoring' || param === 'apm--continuous-profiler') {
                param = 'apm'
            }
            // redirect legacy Bits AI SRE pricing page to AI Credits
            if (param === 'bits-ai-sre') {
                param = 'ai-credits'
            }
            let matchParam = this.productAltNames.find(item => item.alt_name === param)
            
            if (!matchParam) {
                param = 'infrastructure-monitoring'
                this.updateQueryParam('product', param)
                return param
            } else {
                return param
            }
        },
        getAppRegion() {
            try {
                var json = JSON.parse(localStorage.getItem('appRegion'));
                return json.value.slice(0,2);
            } catch (err) {
                return localStorage.getItem('appRegion').slice(0,2);
            }
        }
     }" x-init="
        $watch('region', value => localStorage.setItem('pricingRegion', value))
        URLParams = new URLSearchParams(window.location.search)
        region =
            URLParams.get('site') && allowed_regions.includes(URLParams.get('site').toLowerCase())
            ? URLParams.get('site').toLowerCase()
            : localStorage.getItem('pricingRegion') && allowed_regions.includes(localStorage.getItem('pricingRegion'))
            ? localStorage.getItem('pricingRegion')
            : localStorage.getItem('appRegion') && allowed_regions.includes(getAppRegion())
            ? getAppRegion()
            : 'us'
        fedRegionSelected =
            region.includes('fed')
            ? true
            : false
        product = getProductParam()       
        if (window.location.hash && window.location.hash !== 'products') {
            var hashElement = document.querySelector(window.location.hash)
            if (!hashElement) {
                window.location.hash = 'products'
            }
        }
        fedProducts = ['log-management','infrastructure','application-performance-monitoring','workload-protection','incident-response','error-tracking','edge-device-monitoring','managed-platform-otlp','serverless-monitoring','real-user-monitoring--session-replay','synthetic-testing--monitoring','network-monitoring','sensitive-data-scanner','cloud-siem','audit-trail','cloud-security','cloud-cost-management','database-monitoring',]
        if (fedRegionSelected && !fedProducts.includes(product)) {
            product =  'infrastructure-monitoring'
            removeQueryParam('tab')
            updateQueryParam('product', product)
        }
    "><header class=pricing-header><div class=container><div class="pricing-header-row row justify-content-md-center"><div class="col-12 col-md-10 col-xxl-8 d-flex flex-column justify-content-between text-center row-gap-lg-4"><div><h1 class=fw-semibold>Pricing</h1><h2 class=fw-semibold>Flexible, transparent pricing designed to scale with your business</h2><p>Multi-Year/Volume discounts available</p></div><div class="button-container d-flex flex-column align-items-center justify-content-center flex-md-row"><button data-dd-action-name="hero: button: free trial" class="sign-up-trigger js-cta-PricingCTA" aria-label="Free Trial">
<span class=text-white>Free Trial</span>
</button>
<button data-dd-action-name="hero: link: contact us" class=js-modal-demo aria-label="Contact Us">
<span>Contact Us</span>
<i class="d-none d-md-inline-flex icon-right-carrot-normal-2" aria-hidden=true></i></button></div></div></div></div></header><main class=container-lg id=products x-data="{ pricing: {'us':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'HOSTS-ENTERP': {'annual_cost': '23','month_to_month_cost': '27','on_demand_cost': '27'},'HOST-DEVSECOPS-PRO': {'annual_cost': '22','month_to_month_cost': '27','on_demand_cost': '27'},'HOST-DEVSECOPS-ENT': {'annual_cost': '34','month_to_month_cost': '41','on_demand_cost': '41'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.50','month_to_month_cost': '1.50','on_demand_cost': '0.003'},'CONT-EXCL-AGENT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'CM-100': {'annual_cost': '5','month_to_month_cost': '5','on_demand_cost': '5'},'custom_metrics_level_1': {'annual_cost': '4',},'custom_metrics_level_2': {'annual_cost': '3.50',},'custom_metrics_level_3': {'annual_cost': '3',},'custom_metrics_level_4': {'annual_cost': '2.50',},'custom_metrics_level_5': {'annual_cost': '1',},'CM-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'CUSTOM-EVENTS': {'annual_cost': '2','month_to_month_cost': '2.40','on_demand_cost': '3'},'network_path': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'HOSTS-NETWORK': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SNMP-DEVICE': {'annual_cost': '7','month_to_month_cost': '8.50','on_demand_cost': '10.20'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '4','month_to_month_cost': '4.80','on_demand_cost': '5.76'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.60','month_to_month_cost': '0.72','on_demand_cost': '0.86'},'NETFLOW-MONITORING': {'annual_cost': '0.65','month_to_month_cost': '0.78','on_demand_cost': '0.94'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.08'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '0.85','month_to_month_cost': '1.02','on_demand_cost': '1.22'},'SERVERLESS-APPS': {'annual_cost': '3','month_to_month_cost': '4','on_demand_cost': '4.32'},'SERVERLESS-INFRA': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SERVERLESS-APPS-APM': {'annual_cost': '6','month_to_month_cost': '7.2','on_demand_cost': '9'},'SERVERLESS-APM': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'ccm_spend_monitored_ent': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'LOG-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'LOGS-3DAY': {'annual_cost': '1.06','month_to_month_cost': '1.27','on_demand_cost': '1.59'},'LOGS-7DAY': {'annual_cost': '1.27','month_to_month_cost': '1.52','on_demand_cost': '1.91'},'LOGS-15DAY': {'annual_cost': '1.70','month_to_month_cost': '2.04','on_demand_cost': '2.55'},'LOGS-30DAY': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'FLEX-STORED-LOGS': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.075'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.60','month_to_month_cost': '0.72','on_demand_cost': '0.90'},'LOG-FW': {'annual_cost': '0.25','month_to_month_cost': '0.25','on_demand_cost': '0.25'},'SDS-PARTIAL': {'annual_cost': '0.03','month_to_month_cost': '0.04','on_demand_cost': '0.045'},'SDS': {'annual_cost': '0.30','month_to_month_cost': '0.36','on_demand_cost': '0.45'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'OBS-PIPES': {'annual_cost': '0.095','month_to_month_cost': '0.10','on_demand_cost': '0.12'},'OBS-PIPES-PLUS': {'annual_cost': '1950','month_to_month_cost': '2340','on_demand_cost': '2808'},'LOGS-ARCHIVE-SEARCH': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.07'},'INFRA-STORAGE-MGMT': {'annual_cost': '0.35','month_to_month_cost': '0.42','on_demand_cost': '0.50'},'HOSTS-APM': {'annual_cost': '31','month_to_month_cost': '36','on_demand_cost': '36'},'SPANS-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'TRACE-7DAY': {'annual_cost': '1.27','month_to_month_cost': '1.52','on_demand_cost': '1.91'},'TRACE-15DAY': {'annual_cost': '1.70','month_to_month_cost': '2.04','on_demand_cost': '2.55'},'TRACE-30DAY': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'APM-HOST-PRO': {'annual_cost': '35','month_to_month_cost': '42','on_demand_cost': '42'},'APM-HOST-ENT': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '48'},'HOSTS-APM-STANDALONE': {'annual_cost': '36','month_to_month_cost': '41.81','on_demand_cost': '41.81'},'APM-PRO-STANDALONE': {'annual_cost': '41','month_to_month_cost': '49.20','on_demand_cost': '49.20'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '47','month_to_month_cost': '56.40','on_demand_cost': '56.40'},'USM-WITHIN-INFRA-HOST': {'annual_cost': '9','month_to_month_cost': '10.80','on_demand_cost': '13'},'DSM': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'PROF-HOSTS': {'annual_cost': '19','month_to_month_cost': '23','on_demand_cost': '23'},'FARGATE-PROF': {'annual_cost': '1.20','month_to_month_cost': '1.40','on_demand_cost': '1.70'},'PROF-CONT': {'annual_cost': '2','month_to_month_cost': '2','on_demand_cost': '0.004'},'HOSTS-DBM': {'annual_cost': '70','month_to_month_cost': '84','on_demand_cost': '84'},'DJM-HOST-HR': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.072'},'DO-JOBS-MONITORING-SERVERLESS': {},'DO-JOBS-MONITORING-ORCHESTRATORS': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.144'},'DO-QUALITY-MONITORING': {'annual_cost': '16','month_to_month_cost': '21','on_demand_cost': '24'},'NQ-10': {},'PIP-VIS': {'annual_cost': '8','month_to_month_cost': '9.60','on_demand_cost': '12'},'TES-VIS': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'SD-CODE-COVERAGE': {'annual_cost': '8','month_to_month_cost': '9.60','on_demand_cost': '12'},'PIP-SPA-VIS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'TEST-SPA-VIS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'CSM-HOST-PRO': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '12'},'SEC-CONT': {'annual_cost': '.50','month_to_month_cost': '.50','on_demand_cost': '0.001'},'CSM-HOST-ENT': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '30'},'CSM-CONT-ENT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'CWS-HOSTS': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'CWS-CONT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'FARGATE-CWS': {'annual_cost': '2.60','month_to_month_cost': '3.10','on_demand_cost': '3.70'},'APPSEC-HOSTS': {'annual_cost': '31','month_to_month_cost': '36','on_demand_cost': '36'},'FARGATE-ASM': {'annual_cost': '2','month_to_month_cost': '2.40','on_demand_cost': '2.90'},'APPSEC-FARGATE-SCA': {'annual_cost': '1','month_to_month_cost': '1.20','on_demand_cost': '1.40'},'SERVERLESS-ASM': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'SIEM-INDEXED': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.50'},'APPSEC-VM-OSS-HOSTS': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'CA-STATIC-SCA': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'CODE-SECURITY-HOST': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'CA-SAST': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'IAC-SECURITY': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '22'},'CODE-SECURITY-SECRETS-COMMITTER': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '22'},'CA-COMBO-COMMITTERS': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '57.60'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.50','month_to_month_cost': '1.80','on_demand_cost': '2.20'},'PRODUCT-ANALYTICS': {'annual_cost': '0.80','month_to_month_cost': '1','on_demand_cost': '1.20'},'RUM-SESSION-REPLAY': {'annual_cost': '1.80','month_to_month_cost': '2.20','on_demand_cost': '2.60'},'RUM-INGESTED': {'annual_cost': '0.15','month_to_month_cost': '0.18','on_demand_cost': '0.22'},'RUM-INVESTIGATE': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.60'},'DEM-EXPERIMENTS': {'annual_cost': '450','month_to_month_cost': '530','on_demand_cost': '575'},'SYNTHETICS-10K': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SYNTHETICS-1K': {'annual_cost': '12','month_to_month_cost': '15','on_demand_cost': '18'},'CI-MOBILE-APP-TEST': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '72'},'CI-APP-TEST': {'annual_cost': '79','month_to_month_cost': '95','on_demand_cost': '114'},'ON-CALL': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'INCIDENT-MANAGEMENT': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'ENT-INCIDENT-RESPONSE': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '58'},'EVT-MGT-CORRELATION': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.14'},'WORKFLOW-WORKFLOW': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '14'},'err_tracking_tier_1': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'err_tracking_tier_2': {'annual_cost': '0.25','month_to_month_cost': '0.30','on_demand_cost': '0.38'},'err_tracking_tier_3': {'annual_cost': '0.21','month_to_month_cost': '0.25','on_demand_cost': '0.32'},'err_tracking_tier_4': {'annual_cost': '0.17','month_to_month_cost': '0.20','on_demand_cost': '0.26'},'err_tracking_tier_5': {'annual_cost': '0.12','month_to_month_cost': '0.14','on_demand_cost': '0.22'},'err_tracking_tier_6': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.18'},'ERR-TRACKING-50K': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'ERR-TRACKING-100K': {'annual_cost': '37.50','month_to_month_cost': '45','on_demand_cost': '55'},'ERR-TRACKING-300K': {'annual_cost': '79.50','month_to_month_cost': '95','on_demand_cost': '119'},'ERR-TRACKING-500K': {'annual_cost': '121.50','month_to_month_cost': '145','on_demand_cost': '183'},'ERR-TRACKING-1M': {'annual_cost': '206.50','month_to_month_cost': '245','on_demand_cost': '313'},'ERR-TRACKING-3M': {'annual_cost': '546.50','month_to_month_cost': '645','on_demand_cost': '833'},'ERR-TRACKING-5M': {'annual_cost': '886.50','month_to_month_cost': '1,045','on_demand_cost': '1,353'},'ERR-TRACKING-10M': {'annual_cost': '1,736.50','month_to_month_cost': '2,045','on_demand_cost': '2,653'},'ERR-TRACKING-15M': {'annual_cost': '2,336.50','month_to_month_cost': '2,745','on_demand_cost': '3,753'},'ERR-TRACKING-20M': {'annual_cost': '2,936.50','month_to_month_cost': '3,445','on_demand_cost': '4,853'},'ERR-TRACKING-25M': {'annual_cost': '3,436.50','month_to_month_cost': '4,045','on_demand_cost': '5,753'},'ERR-TRACKING-30M': {'annual_cost': '3,936.50','month_to_month_cost': '4,645','on_demand_cost': '6,653'},'ERR-TRACKING-35M': {'annual_cost': '4,436.50','month_to_month_cost': '5,245','on_demand_cost': '7,553'},'ERR-TRACKING-40M': {'annual_cost': '4,936.50','month_to_month_cost': '5,845','on_demand_cost': '8,453'},'ERR-TRACKING-45M': {'annual_cost': '5,436.50','month_to_month_cost': '6,445','on_demand_cost': '9,353'},'ERR-TRACKING-50M': {'annual_cost': '5,936.50','month_to_month_cost': '7,045','on_demand_cost': '10,253'},'PUBLISHED-APP': {'annual_cost': '35','month_to_month_cost': '42','on_demand_cost': '51'},'FEATURE-FLAGS': {'annual_cost': '55','month_to_month_cost': '89','on_demand_cost': '100'},'FEATURE-FLAGS-10M': {'annual_cost': '45','month_to_month_cost': '73','on_demand_cost': '92'},'LLM-OBSERVABILITY-15DAY': {'annual_cost': '160','month_to_month_cost': '200','on_demand_cost': '240'},'LLM-OBSERVABILITY-ADDL-10K': {'annual_cost': '3.50','month_to_month_cost': '4.20','on_demand_cost': '5'},'LLM-OBSERVABILITY-15DAY-FREE': {'annual_cost': '0','month_to_month_cost': '0',},'LLM-OBSERVABILITY-30DAY': {'annual_cost': '1.50','month_to_month_cost': '1.50','on_demand_cost': '1.50'},'LLM-OBSERVABILITY-60DAY': {'annual_cost': '3','month_to_month_cost': '3','on_demand_cost': '3'},'LLM-OBSERVABILITY-90DAY': {'annual_cost': '4','month_to_month_cost': '4','on_demand_cost': '4'},'KUBERNETES-AUTOSCALING': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.32'},'EDGE-DEVICE-MONT': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'AI-CREDITS': {'annual_cost': '500','month_to_month_cost': '600',},'AI-CREDITS-OD': {'on_demand_cost': '1.30'},'APM-INGEST': {'annual_cost': '0.50','month_to_month_cost': '0.50','on_demand_cost': '0.50'},'DATADOG-DISASTER-RECOVERY': {},},'eu':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'HOSTS-ENTERP': {'annual_cost': '23','month_to_month_cost': '27','on_demand_cost': '27'},'HOST-DEVSECOPS-PRO': {'annual_cost': '22','month_to_month_cost': '27','on_demand_cost': '27'},'HOST-DEVSECOPS-ENT': {'annual_cost': '34','month_to_month_cost': '41','on_demand_cost': '41'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.50','month_to_month_cost': '1.50','on_demand_cost': '0.003'},'CONT-EXCL-AGENT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'CM-100': {'annual_cost': '5','month_to_month_cost': '5','on_demand_cost': '5'},'custom_metrics_level_1': {'annual_cost': '4',},'custom_metrics_level_2': {'annual_cost': '3.50',},'custom_metrics_level_3': {'annual_cost': '3',},'custom_metrics_level_4': {'annual_cost': '2.50',},'custom_metrics_level_5': {'annual_cost': '1',},'CM-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'CUSTOM-EVENTS': {'annual_cost': '2','month_to_month_cost': '2.40','on_demand_cost': '3'},'network_path': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'HOSTS-NETWORK': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SNMP-DEVICE': {'annual_cost': '7','month_to_month_cost': '8.50','on_demand_cost': '10.20'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '4','month_to_month_cost': '4.80','on_demand_cost': '5.76'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.60','month_to_month_cost': '0.72','on_demand_cost': '0.86'},'NETFLOW-MONITORING': {'annual_cost': '0.65','month_to_month_cost': '0.78','on_demand_cost': '0.94'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.08'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '0.85','month_to_month_cost': '1.02','on_demand_cost': '1.22'},'SERVERLESS-APPS': {'annual_cost': '3','month_to_month_cost': '4','on_demand_cost': '4.32'},'SERVERLESS-INFRA': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SERVERLESS-APPS-APM': {'annual_cost': '6','month_to_month_cost': '7.2','on_demand_cost': '9'},'SERVERLESS-APM': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'ccm_spend_monitored_ent': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'LOG-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'LOGS-3DAY': {'annual_cost': '1.06','month_to_month_cost': '1.27','on_demand_cost': '1.59'},'LOGS-7DAY': {'annual_cost': '1.27','month_to_month_cost': '1.52','on_demand_cost': '1.91'},'LOGS-15DAY': {'annual_cost': '1.70','month_to_month_cost': '2.04','on_demand_cost': '2.55'},'LOGS-30DAY': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'FLEX-STORED-LOGS': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.075'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.60','month_to_month_cost': '0.72','on_demand_cost': '0.90'},'LOG-FW': {'annual_cost': '0.25','month_to_month_cost': '0.25','on_demand_cost': '0.25'},'SDS-PARTIAL': {'annual_cost': '0.03','month_to_month_cost': '0.04','on_demand_cost': '0.045'},'SDS': {'annual_cost': '0.30','month_to_month_cost': '0.36','on_demand_cost': '0.45'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'OBS-PIPES': {'annual_cost': '0.095','month_to_month_cost': '0.10','on_demand_cost': '0.12'},'OBS-PIPES-PLUS': {'annual_cost': '1950','month_to_month_cost': '2340','on_demand_cost': '2808'},'LOGS-ARCHIVE-SEARCH': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.07'},'INFRA-STORAGE-MGMT': {'annual_cost': '0.35','month_to_month_cost': '0.42','on_demand_cost': '0.50'},'HOSTS-APM': {'annual_cost': '31','month_to_month_cost': '36','on_demand_cost': '36'},'SPANS-INGEST': {'annual_cost': '0.10','month_to_month_cost': '0.10','on_demand_cost': '0.10'},'TRACE-7DAY': {'annual_cost': '1.27','month_to_month_cost': '1.52','on_demand_cost': '1.91'},'TRACE-15DAY': {'annual_cost': '1.70','month_to_month_cost': '2.04','on_demand_cost': '2.55'},'TRACE-30DAY': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'APM-HOST-PRO': {'annual_cost': '35','month_to_month_cost': '42','on_demand_cost': '42'},'APM-HOST-ENT': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '48'},'HOSTS-APM-STANDALONE': {'annual_cost': '36','month_to_month_cost': '41.81','on_demand_cost': '41.81'},'APM-PRO-STANDALONE': {'annual_cost': '41','month_to_month_cost': '49.20','on_demand_cost': '49.20'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '47','month_to_month_cost': '56.40','on_demand_cost': '56.40'},'USM-WITHIN-INFRA-HOST': {'annual_cost': '9','month_to_month_cost': '10.80','on_demand_cost': '13'},'DSM': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'PROF-HOSTS': {'annual_cost': '19','month_to_month_cost': '23','on_demand_cost': '23'},'FARGATE-PROF': {'annual_cost': '1.20','month_to_month_cost': '1.40','on_demand_cost': '1.70'},'PROF-CONT': {'annual_cost': '2','month_to_month_cost': '2','on_demand_cost': '0.004'},'HOSTS-DBM': {'annual_cost': '70','month_to_month_cost': '84','on_demand_cost': '84'},'DJM-HOST-HR': {'annual_cost': '0.05','month_to_month_cost': '0.06','on_demand_cost': '0.072'},'DO-JOBS-MONITORING-SERVERLESS': {},'DO-JOBS-MONITORING-ORCHESTRATORS': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.144'},'DO-QUALITY-MONITORING': {'annual_cost': '16','month_to_month_cost': '21','on_demand_cost': '24'},'NQ-10': {},'PIP-VIS': {'annual_cost': '8','month_to_month_cost': '9.60','on_demand_cost': '12'},'TES-VIS': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'SD-CODE-COVERAGE': {'annual_cost': '8','month_to_month_cost': '9.60','on_demand_cost': '12'},'PIP-SPA-VIS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'TEST-SPA-VIS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'CSM-HOST-PRO': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '12'},'SEC-CONT': {'annual_cost': '.50','month_to_month_cost': '.50','on_demand_cost': '0.001'},'CSM-HOST-ENT': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '30'},'CSM-CONT-ENT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'CWS-HOSTS': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '18'},'CWS-CONT': {'annual_cost': '1','month_to_month_cost': '1','on_demand_cost': '0.002'},'FARGATE-CWS': {'annual_cost': '2.60','month_to_month_cost': '3.10','on_demand_cost': '3.70'},'APPSEC-HOSTS': {'annual_cost': '31','month_to_month_cost': '36','on_demand_cost': '36'},'FARGATE-ASM': {'annual_cost': '2','month_to_month_cost': '2.40','on_demand_cost': '2.90'},'APPSEC-FARGATE-SCA': {'annual_cost': '1','month_to_month_cost': '1.20','on_demand_cost': '1.40'},'SERVERLESS-ASM': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'SIEM-INDEXED': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.50'},'APPSEC-VM-OSS-HOSTS': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'CA-STATIC-SCA': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'CODE-SECURITY-HOST': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'CA-SAST': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'IAC-SECURITY': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '22'},'CODE-SECURITY-SECRETS-COMMITTER': {'annual_cost': '15','month_to_month_cost': '18','on_demand_cost': '22'},'CA-COMBO-COMMITTERS': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '57.60'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.50','month_to_month_cost': '1.80','on_demand_cost': '2.20'},'RUM-INGESTED': {'annual_cost': '0.15','month_to_month_cost': '0.18','on_demand_cost': '0.22'},'RUM-INVESTIGATE': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'PRODUCT-ANALYTICS': {'annual_cost': '0.80','month_to_month_cost': '1','on_demand_cost': '1.20'},'RUM-SESSION-REPLAY': {'annual_cost': '1.80','month_to_month_cost': '2.20','on_demand_cost': '2.60'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.60'},'DEM-EXPERIMENTS': {'annual_cost': '450','month_to_month_cost': '530','on_demand_cost': '575'},'SYNTHETICS-10K': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'SYNTHETICS-1K': {'annual_cost': '12','month_to_month_cost': '15','on_demand_cost': '18'},'CI-MOBILE-APP-TEST': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '72'},'CI-APP-TEST': {'annual_cost': '79','month_to_month_cost': '95','on_demand_cost': '114'},'ON-CALL': {'annual_cost': '20','month_to_month_cost': '24','on_demand_cost': '29'},'INCIDENT-MANAGEMENT': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'ENT-INCIDENT-RESPONSE': {'annual_cost': '40','month_to_month_cost': '48','on_demand_cost': '58'},'EVT-MGT-CORRELATION': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.14'},'WORKFLOW-WORKFLOW': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '14'},'ERR-TRACKING': {'annual_cost': '0.25','month_to_month_cost': '0.30','on_demand_cost': '0.36'},'err_tracking_tier_1': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'err_tracking_tier_2': {'annual_cost': '0.25','month_to_month_cost': '0.30','on_demand_cost': '0.38'},'err_tracking_tier_3': {'annual_cost': '0.21','month_to_month_cost': '0.25','on_demand_cost': '0.32'},'err_tracking_tier_4': {'annual_cost': '0.17','month_to_month_cost': '0.20','on_demand_cost': '0.26'},'err_tracking_tier_5': {'annual_cost': '0.12','month_to_month_cost': '0.14','on_demand_cost': '0.22'},'err_tracking_tier_6': {'annual_cost': '0.10','month_to_month_cost': '0.12','on_demand_cost': '0.18'},'ERR-TRACKING-50K': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36'},'ERR-TRACKING-100K': {'annual_cost': '37.50','month_to_month_cost': '45','on_demand_cost': '55'},'ERR-TRACKING-300K': {'annual_cost': '79.50','month_to_month_cost': '95','on_demand_cost': '119'},'ERR-TRACKING-500K': {'annual_cost': '121.50','month_to_month_cost': '145','on_demand_cost': '183'},'ERR-TRACKING-1M': {'annual_cost': '206.50','month_to_month_cost': '245','on_demand_cost': '313'},'ERR-TRACKING-3M': {'annual_cost': '546.50','month_to_month_cost': '645','on_demand_cost': '833'},'ERR-TRACKING-5M': {'annual_cost': '886.50','month_to_month_cost': '1,045','on_demand_cost': '1,353'},'ERR-TRACKING-10M': {'annual_cost': '1,736.50','month_to_month_cost': '2,045','on_demand_cost': '2,653'},'ERR-TRACKING-15M': {'annual_cost': '2,336.50','month_to_month_cost': '2,745','on_demand_cost': '3,753'},'ERR-TRACKING-20M': {'annual_cost': '2,936.50','month_to_month_cost': '3,445','on_demand_cost': '4,853'},'ERR-TRACKING-25M': {'annual_cost': '3,436.50','month_to_month_cost': '4,045','on_demand_cost': '5,753'},'ERR-TRACKING-30M': {'annual_cost': '3,936.50','month_to_month_cost': '4,645','on_demand_cost': '6,653'},'ERR-TRACKING-35M': {'annual_cost': '4,436.50','month_to_month_cost': '5,245','on_demand_cost': '7,553'},'ERR-TRACKING-40M': {'annual_cost': '4,936.50','month_to_month_cost': '5,845','on_demand_cost': '8,453'},'ERR-TRACKING-45M': {'annual_cost': '5,436.50','month_to_month_cost': '6,445','on_demand_cost': '9,353'},'ERR-TRACKING-50M': {'annual_cost': '5,936.50','month_to_month_cost': '7,045','on_demand_cost': '10,253'},'PUBLISHED-APP': {'annual_cost': '35','month_to_month_cost': '42','on_demand_cost': '51'},'FEATURE-FLAGS': {'annual_cost': '55','month_to_month_cost': '89','on_demand_cost': '100'},'FEATURE-FLAGS-10M': {'annual_cost': '45','month_to_month_cost': '73','on_demand_cost': '92'},'LLM-OBSERVABILITY-15DAY': {'annual_cost': '160','month_to_month_cost': '200','on_demand_cost': '240'},'LLM-OBSERVABILITY-ADDL-10K': {'annual_cost': '3.50','month_to_month_cost': '4.20','on_demand_cost': '5'},'LLM-OBSERVABILITY-15DAY-FREE': {'annual_cost': '0','month_to_month_cost': '0',},'LLM-OBSERVABILITY-30DAY': {'annual_cost': '1.50','month_to_month_cost': '1.50','on_demand_cost': '1.50'},'LLM-OBSERVABILITY-60DAY': {'annual_cost': '3','month_to_month_cost': '3','on_demand_cost': '3'},'LLM-OBSERVABILITY-90DAY': {'annual_cost': '4','month_to_month_cost': '4','on_demand_cost': '4'},'KUBERNETES-AUTOSCALING': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.32'},'EDGE-DEVICE-MONT': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'AI-CREDITS': {'annual_cost': '500','month_to_month_cost': '600',},'AI-CREDITS-OD': {'on_demand_cost': '1.30'},'APM-INGEST': {'annual_cost': '0.50','month_to_month_cost': '0.50','on_demand_cost': '0.50'},'DATADOG-DISASTER-RECOVERY': {},},'ap1':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '22.50'},'HOSTS-ENTERP': {'annual_cost': '28.75','month_to_month_cost': '33.75','on_demand_cost': '33.75'},'HOST-DEVSECOPS-PRO': {'annual_cost': '27.50','month_to_month_cost': '33.75','on_demand_cost': '33.75'},'HOST-DEVSECOPS-ENT': {'annual_cost': '42.50','month_to_month_cost': '51.25','on_demand_cost': '51.25'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.88','month_to_month_cost': '1.88','on_demand_cost': '0.004'},'CONT-EXCL-AGENT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'CM-100': {'annual_cost': '6.25','month_to_month_cost': '6.25','on_demand_cost': '6.25'},'custom_metrics_level_1': {'annual_cost': '5.00',},'custom_metrics_level_2': {'annual_cost': '4.38',},'custom_metrics_level_3': {'annual_cost': '3.75',},'custom_metrics_level_4': {'annual_cost': '3.13',},'custom_metrics_level_5': {'annual_cost': '1.25',},'CM-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'CUSTOM-EVENTS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'network_path': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'HOSTS-NETWORK': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SNMP-DEVICE': {'annual_cost': '8.75','month_to_month_cost': '10.63','on_demand_cost': '12.75'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.08'},'NETFLOW-MONITORING': {'annual_cost': '0.82','month_to_month_cost': '0.98','on_demand_cost': '1.18'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.94','month_to_month_cost': '1.13','on_demand_cost': '1.35'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '1.06','month_to_month_cost': '1.28','on_demand_cost': '1.53'},'SERVERLESS-APPS': {'annual_cost': '3.75','month_to_month_cost': '5','on_demand_cost': '5.40'},'SERVERLESS-INFRA': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SERVERLESS-APPS-APM': {'annual_cost': '7.50','month_to_month_cost': '9','on_demand_cost': '11.25'},'SERVERLESS-APM': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'ccm_spend_monitored_ent': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'LOG-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'LOGS-3DAY': {'annual_cost': '1.33','month_to_month_cost': '1.59','on_demand_cost': '1.99'},'LOGS-7DAY': {'annual_cost': '1.59','month_to_month_cost': '1.90','on_demand_cost': '2.39'},'LOGS-15DAY': {'annual_cost': '2.13','month_to_month_cost': '2.55','on_demand_cost': '3.19'},'LOGS-30DAY': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'FLEX-STORED-LOGS': {'annual_cost': '0.0625','month_to_month_cost': '0.075','on_demand_cost': '0.094'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.125'},'LOG-FW': {'annual_cost': '0.31','month_to_month_cost': '0.31','on_demand_cost': '0.31'},'SDS-PARTIAL': {'annual_cost': '0.038','month_to_month_cost': '0.045','on_demand_cost': '0.056'},'SDS': {'annual_cost': '0.38','month_to_month_cost': '0.45','on_demand_cost': '0.56'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'OBS-PIPES': {'annual_cost': '0.11875','month_to_month_cost': '0.13','on_demand_cost': '0.15'},'OBS-PIPES-PLUS': {'annual_cost': '2437.50','month_to_month_cost': '2925','on_demand_cost': '3510'},'LOGS-ARCHIVE-SEARCH': {'annual_cost': '0.0625','month_to_month_cost': '0.0750','on_demand_cost': '0.0875'},'INFRA-STORAGE-MGMT': {'annual_cost': '0.4375','month_to_month_cost': '0.525','on_demand_cost': '0.625'},'HOSTS-APM': {'annual_cost': '38.75','month_to_month_cost': '45','on_demand_cost': '45'},'SPANS-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'TRACE-7DAY': {'annual_cost': '1.59','month_to_month_cost': '1.90','on_demand_cost': '2.39'},'TRACE-15DAY': {'annual_cost': '2.13','month_to_month_cost': '2.55','on_demand_cost': '3.19'},'TRACE-30DAY': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'APM-HOST-PRO': {'annual_cost': '43.75','month_to_month_cost': '52.50','on_demand_cost': '52.50'},'APM-HOST-ENT': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '60'},'HOSTS-APM-STANDALONE': {'annual_cost': '45','month_to_month_cost': '52.26','on_demand_cost': '52.26'},'APM-PRO-STANDALONE': {'annual_cost': '51.25','month_to_month_cost': '61.50','on_demand_cost': '61.50'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '58.75','month_to_month_cost': '70.50','on_demand_cost': '70.50'},'USM-WITHIN-INFRA-HOST': {'annual_cost': '11.25','month_to_month_cost': '13.50','on_demand_cost': '16.25'},'DSM': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '22.50'},'PROF-HOSTS': {'annual_cost': '23.75','month_to_month_cost': '28.75','on_demand_cost': '28.75'},'FARGATE-PROF': {'annual_cost': '1.50','month_to_month_cost': '1.75','on_demand_cost': '2.13'},'PROF-CONT': {'annual_cost': '2.50','month_to_month_cost': '2.50','on_demand_cost': '0.005'},'HOSTS-DBM': {'annual_cost': '87.50','month_to_month_cost': '105','on_demand_cost': '105'},'DJM-HOST-HR': {'annual_cost': '0.0625','month_to_month_cost': '0.075','on_demand_cost': '0.09'},'DO-JOBS-MONITORING-SERVERLESS': {},'DO-JOBS-MONITORING-ORCHESTRATORS': {'annual_cost': '0.125','month_to_month_cost': '0.15','on_demand_cost': '0.18'},'DO-QUALITY-MONITORING': {'annual_cost': '20','month_to_month_cost': '26.25','on_demand_cost': '30'},'NQ-10': {},'PIP-VIS': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'SD-CODE-COVERAGE': {'annual_cost': '10','month_to_month_cost': '12','on_demand_cost': '15'},'TES-VIS': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36.25'},'PIP-SPA-VIS': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'TEST-SPA-VIS': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'CSM-HOST-PRO': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '15'},'SEC-CONT': {'annual_cost': '0.63','month_to_month_cost': '0.63','on_demand_cost': '0.001'},'CSM-HOST-ENT': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '37.50'},'CSM-CONT-ENT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'CWS-HOSTS': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '22.50'},'CWS-CONT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'FARGATE-CWS': {'annual_cost': '3.25','month_to_month_cost': '3.875','on_demand_cost': '4.625'},'APPSEC-HOSTS': {'annual_cost': '38.75','month_to_month_cost': '45','on_demand_cost': '45'},'FARGATE-ASM': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.63'},'APPSEC-FARGATE-SCA': {'annual_cost': '1.25','month_to_month_cost': '1.50','on_demand_cost': '1.75'},'SERVERLESS-ASM': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'SIEM-INDEXED': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9.38'},'APPSEC-VM-OSS-HOSTS': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'CA-STATIC-SCA': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'CODE-SECURITY-HOST': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36.25'},'CA-SAST': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'IAC-SECURITY': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '27.50'},'CODE-SECURITY-SECRETS-COMMITTER': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '27.50'},'CA-COMBO-COMMITTERS': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '72'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.88','month_to_month_cost': '2.25','on_demand_cost': '2.75'},'RUM-INGESTED': {'annual_cost': '0.188','month_to_month_cost': '0.225','on_demand_cost': '0.275'},'RUM-INVESTIGATE': {'annual_cost': '3.75','month_to_month_cost': '4.50','on_demand_cost': '5.625'},'PRODUCT-ANALYTICS': {'annual_cost': '1','month_to_month_cost': '1.25','on_demand_cost': '1.50'},'RUM-SESSION-REPLAY': {'annual_cost': '2.25','month_to_month_cost': '2.75','on_demand_cost': '3.25'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '3.125','month_to_month_cost': '3.75','on_demand_cost': '4.50'},'DEM-EXPERIMENTS': {'annual_cost': '562.50','month_to_month_cost': '662.50','on_demand_cost': '718.75'},'SYNTHETICS-10K': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SYNTHETICS-1K': {'annual_cost': '15','month_to_month_cost': '18.75','on_demand_cost': '22.50'},'CI-MOBILE-APP-TEST': {'annual_cost': '62.50','month_to_month_cost': '75','on_demand_cost': '90'},'CI-APP-TEST': {'annual_cost': '98.75','month_to_month_cost': '118.75','on_demand_cost': '142.50'},'ON-CALL': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36.25'},'INCIDENT-MANAGEMENT': {'annual_cost': '37.50','month_to_month_cost': '45','on_demand_cost': '54'},'ENT-INCIDENT-RESPONSE': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '72.50'},'EVT-MGT-CORRELATION': {'annual_cost': '0.125','month_to_month_cost': '0.15','on_demand_cost': '0.175'},'WORKFLOW-WORKFLOW': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '17.50'},'ERR-TRACKING': {'annual_cost': '0.31','month_to_month_cost': '0.38','on_demand_cost': '0.45'},'err_tracking_tier_1': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'err_tracking_tier_2': {'annual_cost': '0.3125','month_to_month_cost': '0.375','on_demand_cost': '0.475'},'err_tracking_tier_3': {'annual_cost': '0.2625','month_to_month_cost': '0.3125','on_demand_cost': '0.40'},'err_tracking_tier_4': {'annual_cost': '0.2125','month_to_month_cost': '0.25','on_demand_cost': '0.325'},'err_tracking_tier_5': {'annual_cost': '0.15','month_to_month_cost': '0.175','on_demand_cost': '0.275'},'err_tracking_tier_6': {'annual_cost': '0.125','month_to_month_cost': '0.15','on_demand_cost': '0.225'},'ERR-TRACKING-50K': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'ERR-TRACKING-100K': {'annual_cost': '46.875','month_to_month_cost': '56.25','on_demand_cost': '68.75'},'ERR-TRACKING-300K': {'annual_cost': '99.375','month_to_month_cost': '118.75','on_demand_cost': '148.75'},'ERR-TRACKING-500K': {'annual_cost': '151.875','month_to_month_cost': '181.25','on_demand_cost': '228.75'},'ERR-TRACKING-1M': {'annual_cost': '258.125','month_to_month_cost': '306.25','on_demand_cost': '391.25'},'ERR-TRACKING-3M': {'annual_cost': '683.125','month_to_month_cost': '806.25','on_demand_cost': '1,041.25'},'ERR-TRACKING-5M': {'annual_cost': '1,108.125','month_to_month_cost': '1,306.25','on_demand_cost': '1,691.25'},'ERR-TRACKING-10M': {'annual_cost': '2,170.625','month_to_month_cost': '2,556.25','on_demand_cost': '3,316.25'},'ERR-TRACKING-15M': {'annual_cost': '2,920.625','month_to_month_cost': '3,431.25','on_demand_cost': '4,691.25'},'ERR-TRACKING-20M': {'annual_cost': '3,670.625','month_to_month_cost': '4,306.25','on_demand_cost': '6,066.25'},'ERR-TRACKING-25M': {'annual_cost': '4,295.625','month_to_month_cost': '5,056.25','on_demand_cost': '7,191.25'},'ERR-TRACKING-30M': {'annual_cost': '4,920.625','month_to_month_cost': '5,806.25','on_demand_cost': '8,316.25'},'ERR-TRACKING-35M': {'annual_cost': '5,545.625','month_to_month_cost': '6,556.25','on_demand_cost': '9,441.25'},'ERR-TRACKING-40M': {'annual_cost': '6,170.625','month_to_month_cost': '7,306.25','on_demand_cost': '10,566.25'},'ERR-TRACKING-45M': {'annual_cost': '6,795.625','month_to_month_cost': '8,056.25','on_demand_cost': '11,691.25'},'ERR-TRACKING-50M': {'annual_cost': '7,420.625','month_to_month_cost': '8,806.25','on_demand_cost': '12,816.25'},'PUBLISHED-APP': {'annual_cost': '43.75','month_to_month_cost': '52.50','on_demand_cost': '63.75'},'FEATURE-FLAGS': {'annual_cost': '68.75','month_to_month_cost': '111.25','on_demand_cost': '125'},'FEATURE-FLAGS-10M': {'annual_cost': '56.25','month_to_month_cost': '91.25','on_demand_cost': '115'},'LLM-OBSERVABILITY-15DAY': {'annual_cost': '200','month_to_month_cost': '250','on_demand_cost': '300'},'LLM-OBSERVABILITY-ADDL-10K': {'annual_cost': '4.38','month_to_month_cost': '5.25','on_demand_cost': '6.25'},'LLM-OBSERVABILITY-15DAY-FREE': {'annual_cost': '0','month_to_month_cost': '0',},'LLM-OBSERVABILITY-30DAY': {'annual_cost': '1.88','month_to_month_cost': '1.88','on_demand_cost': '1.88'},'LLM-OBSERVABILITY-60DAY': {'annual_cost': '3.75','month_to_month_cost': '3.75','on_demand_cost': '3.75'},'LLM-OBSERVABILITY-90DAY': {'annual_cost': '5','month_to_month_cost': '5','on_demand_cost': '5'},'KUBERNETES-AUTOSCALING': {'annual_cost': '3.75','month_to_month_cost': '4.50','on_demand_cost': '5.40'},'EDGE-DEVICE-MONT': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9.00'},'AI-CREDITS': {'annual_cost': '625','month_to_month_cost': '750',},'AI-CREDITS-OD': {'on_demand_cost': '1.625'},'APM-INGEST': {'annual_cost': '0.625','month_to_month_cost': '0.625','on_demand_cost': '0.625'},'DATADOG-DISASTER-RECOVERY': {},},'ap2':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'HOSTS-ENTERP': {'annual_cost': '27.60','month_to_month_cost': '32.40','on_demand_cost': '32.40'},'HOST-DEVSECOPS-PRO': {'annual_cost': '26.40','month_to_month_cost': '32.40','on_demand_cost': '32.40'},'HOST-DEVSECOPS-ENT': {'annual_cost': '40.80','month_to_month_cost': '49.20','on_demand_cost': '49.20'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.80','month_to_month_cost': '1.80','on_demand_cost': '0.0036'},'CONT-EXCL-AGENT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'CM-100': {'annual_cost': '6','month_to_month_cost': '6','on_demand_cost': '6'},'custom_metrics_level_1': {'annual_cost': '4.80',},'custom_metrics_level_2': {'annual_cost': '4.20',},'custom_metrics_level_3': {'annual_cost': '3.60',},'custom_metrics_level_4': {'annual_cost': '2.88',},'custom_metrics_level_5': {'annual_cost': '1.20',},'CM-INGEST': {'annual_cost': '0.120','month_to_month_cost': '0.120','on_demand_cost': '0.120'},'CUSTOM-EVENTS': {'annual_cost': '2.40','month_to_month_cost': '2.88','on_demand_cost': '3.60'},'network_path': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'HOSTS-NETWORK': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SNMP-DEVICE': {'annual_cost': '8.40','month_to_month_cost': '10.20','on_demand_cost': '12.24'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '4.80','month_to_month_cost': '5.76','on_demand_cost': '6.912'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.72','month_to_month_cost': '0.864','on_demand_cost': '1.032'},'NETFLOW-MONITORING': {'annual_cost': '0.78','month_to_month_cost': '0.936','on_demand_cost': '1.128'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.90','month_to_month_cost': '1.08','on_demand_cost': '1.296'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '1.02','month_to_month_cost': '1.224','on_demand_cost': '1.464'},'SERVERLESS-APPS': {'annual_cost': '3.60','month_to_month_cost': '4.80','on_demand_cost': '5.184'},'SERVERLESS-INFRA': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SERVERLESS-APPS-APM': {'annual_cost': '7.20','month_to_month_cost': '8.64','on_demand_cost': '10.80'},'SERVERLESS-APM': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'ccm_spend_monitored_ent': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'LOG-INGEST': {'annual_cost': '0.120','month_to_month_cost': '0.120','on_demand_cost': '0.120'},'LOGS-3DAY': {'annual_cost': '1.272','month_to_month_cost': '1.524','on_demand_cost': '1.908'},'LOGS-7DAY': {'annual_cost': '1.524','month_to_month_cost': '1.824','on_demand_cost': '2.292'},'LOGS-15DAY': {'annual_cost': '2.040','month_to_month_cost': '2.448','on_demand_cost': '3.06'},'LOGS-30DAY': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'FLEX-STORED-LOGS': {'annual_cost': '0.06','month_to_month_cost': '0.072','on_demand_cost': '0.09'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.72','month_to_month_cost': '0.864','on_demand_cost': '1.08'},'LOG-FW': {'annual_cost': '0.30','month_to_month_cost': '0.30','on_demand_cost': '0.30'},'SDS-PARTIAL': {'annual_cost': '0.036','month_to_month_cost': '0.04','on_demand_cost': '0.054'},'SDS': {'annual_cost': '0.36','month_to_month_cost': '0.432','on_demand_cost': '0.54'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'OBS-PIPES': {'annual_cost': '0.114','month_to_month_cost': '0.12','on_demand_cost': '0.144'},'OBS-PIPES-PLUS': {'annual_cost': '2340','month_to_month_cost': '2808','on_demand_cost': '3369.60'},'LOGS-ARCHIVE-SEARCH': {'annual_cost': '0.060','month_to_month_cost': '0.072','on_demand_cost': '0.084'},'INFRA-STORAGE-MGMT': {'annual_cost': '0.42','month_to_month_cost': '0.504','on_demand_cost': '0.60'},'HOSTS-APM': {'annual_cost': '37.20','month_to_month_cost': '43.20','on_demand_cost': '43.20'},'SPANS-INGEST': {'annual_cost': '0.12','month_to_month_cost': '0.12','on_demand_cost': '0.12'},'TRACE-7DAY': {'annual_cost': '1.524','month_to_month_cost': '1.824','on_demand_cost': '2.292'},'TRACE-15DAY': {'annual_cost': '2.04','month_to_month_cost': '2.448','on_demand_cost': '3.06'},'TRACE-30DAY': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'APM-HOST-PRO': {'annual_cost': '42','month_to_month_cost': '50.40','on_demand_cost': '50.40'},'APM-HOST-ENT': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '57.60'},'HOSTS-APM-STANDALONE': {'annual_cost': '43.20','month_to_month_cost': '50.17','on_demand_cost': '50.17'},'APM-PRO-STANDALONE': {'annual_cost': '49.20','month_to_month_cost': '59.04','on_demand_cost': '59.04'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '56.40','month_to_month_cost': '67.68','on_demand_cost': '67.68'},'USM-WITHIN-INFRA-HOST': {'annual_cost': '10.80','month_to_month_cost': '12.96','on_demand_cost': '15.60'},'DSM': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'PROF-HOSTS': {'annual_cost': '22.80','month_to_month_cost': '27.60','on_demand_cost': '27.60'},'FARGATE-PROF': {'annual_cost': '1.44','month_to_month_cost': '1.68','on_demand_cost': '2.04'},'PROF-CONT': {'annual_cost': '2.40','month_to_month_cost': '2.40','on_demand_cost': '0.0048'},'HOSTS-DBM': {'annual_cost': '84','month_to_month_cost': '100.80','on_demand_cost': '100.80'},'DJM-HOST-HR': {'annual_cost': '0.06','month_to_month_cost': '0.072','on_demand_cost': '0.0864'},'DO-JOBS-MONITORING-SERVERLESS': {},'DO-JOBS-MONITORING-ORCHESTRATORS': {'annual_cost': '0.12','month_to_month_cost': '0.144','on_demand_cost': '0.1728'},'DO-QUALITY-MONITORING': {'annual_cost': '19.20','month_to_month_cost': '25.20','on_demand_cost': '28.80'},'NQ-10': {},'PIP-VIS': {'annual_cost': '9.60','month_to_month_cost': '11.52','on_demand_cost': '14.40'},'SD-CODE-COVERAGE': {'annual_cost': '9.60','month_to_month_cost': '11.52','on_demand_cost': '14.40'},'TES-VIS': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'PIP-SPA-VIS': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'TEST-SPA-VIS': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'CSM-HOST-PRO': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '14.40'},'SEC-CONT': {'annual_cost': '0.60','month_to_month_cost': '0.60','on_demand_cost': '0.0012'},'CSM-HOST-ENT': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '36'},'CSM-CONT-ENT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'CWS-HOSTS': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'CWS-CONT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'FARGATE-CWS': {'annual_cost': '3.12','month_to_month_cost': '3.72','on_demand_cost': '4.44'},'APPSEC-HOSTS': {'annual_cost': '37.20','month_to_month_cost': '43.20','on_demand_cost': '43.20'},'FARGATE-ASM': {'annual_cost': '2.40','month_to_month_cost': '2.88','on_demand_cost': '3.48'},'APPSEC-FARGATE-SCA': {'annual_cost': '1.20','month_to_month_cost': '1.44','on_demand_cost': '1.68'},'SERVERLESS-ASM': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'SIEM-INDEXED': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '9'},'APPSEC-VM-OSS-HOSTS': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'CA-STATIC-SCA': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'CODE-SECURITY-HOST': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'CA-SAST': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'IAC-SECURITY': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '26.40'},'CODE-SECURITY-SECRETS-COMMITTER': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '26.40'},'CA-COMBO-COMMITTERS': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '69.12'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.80','month_to_month_cost': '2.16','on_demand_cost': '2.64'},'RUM-INGESTED': {'annual_cost': '0.18','month_to_month_cost': '0.216','on_demand_cost': '0.264'},'RUM-INVESTIGATE': {'annual_cost': '3.60','month_to_month_cost': '4.32','on_demand_cost': '5.40'},'PRODUCT-ANALYTICS': {'annual_cost': '0.96','month_to_month_cost': '1.20','on_demand_cost': '1.44'},'RUM-SESSION-REPLAY': {'annual_cost': '2.16','month_to_month_cost': '2.64','on_demand_cost': '3.12'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.32'},'DEM-EXPERIMENTS': {'annual_cost': '540','month_to_month_cost': '636','on_demand_cost': '690'},'SYNTHETICS-10K': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SYNTHETICS-1K': {'annual_cost': '14.40','month_to_month_cost': '18','on_demand_cost': '21.60'},'CI-MOBILE-APP-TEST': {'annual_cost': '60','month_to_month_cost': '72','on_demand_cost': '86.40'},'CI-APP-TEST': {'annual_cost': '94.80','month_to_month_cost': '114','on_demand_cost': '136.80'},'ON-CALL': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'INCIDENT-MANAGEMENT': {'annual_cost': '36','month_to_month_cost': '43.20','on_demand_cost': '51.84'},'ENT-INCIDENT-RESPONSE': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '69.60'},'EVT-MGT-CORRELATION': {'annual_cost': '0.12','month_to_month_cost': '0.144','on_demand_cost': '0.168'},'WORKFLOW-WORKFLOW': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '16.80'},'ERR-TRACKING': {'annual_cost': '0.30','month_to_month_cost': '0.36','on_demand_cost': '0.42'},'err_tracking_tier_1': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'err_tracking_tier_2': {'annual_cost': '0.288','month_to_month_cost': '0.348','on_demand_cost': '0.42'},'err_tracking_tier_3': {'annual_cost': '0.240','month_to_month_cost': '0.288','on_demand_cost': '0.36'},'err_tracking_tier_4': {'annual_cost': '0.192','month_to_month_cost': '0.232','on_demand_cost': '0.288'},'err_tracking_tier_5': {'annual_cost': '0.144','month_to_month_cost': '0.172','on_demand_cost': '0.228'},'err_tracking_tier_6': {'annual_cost': '0.120','month_to_month_cost': '0.144','on_demand_cost': '0.192'},'ERR-TRACKING-50K': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'ERR-TRACKING-100K': {'annual_cost': '45','month_to_month_cost': '54','on_demand_cost': '66'},'ERR-TRACKING-300K': {'annual_cost': '95.40','month_to_month_cost': '114','on_demand_cost': '142.80'},'ERR-TRACKING-500K': {'annual_cost': '145.80','month_to_month_cost': '174','on_demand_cost': '219.60'},'ERR-TRACKING-1M': {'annual_cost': '247.80','month_to_month_cost': '294','on_demand_cost': '375.60'},'ERR-TRACKING-3M': {'annual_cost': '655.80','month_to_month_cost': '774','on_demand_cost': '999.60'},'ERR-TRACKING-5M': {'annual_cost': '1,063.80','month_to_month_cost': '1,254','on_demand_cost': '1,623.60'},'ERR-TRACKING-10M': {'annual_cost': '2,083.80','month_to_month_cost': '2,454','on_demand_cost': '3,183.60'},'ERR-TRACKING-15M': {'annual_cost': '2,803.80','month_to_month_cost': '3,294','on_demand_cost': '4,503.60'},'ERR-TRACKING-20M': {'annual_cost': '3,523.80','month_to_month_cost': '4,134','on_demand_cost': '5,823.60'},'ERR-TRACKING-25M': {'annual_cost': '4,123.80','month_to_month_cost': '4,854','on_demand_cost': '6,903.60'},'ERR-TRACKING-30M': {'annual_cost': '4,723.80','month_to_month_cost': '5,574','on_demand_cost': '7,983.60'},'ERR-TRACKING-35M': {'annual_cost': '5,323.80','month_to_month_cost': '6,294','on_demand_cost': '9,063.60'},'ERR-TRACKING-40M': {'annual_cost': '5,923.80','month_to_month_cost': '7,014','on_demand_cost': '10,143.60'},'ERR-TRACKING-45M': {'annual_cost': '6,523.80','month_to_month_cost': '7,734','on_demand_cost': '11,223.60'},'ERR-TRACKING-50M': {'annual_cost': '7,123.80','month_to_month_cost': '8,454','on_demand_cost': '12,303.60'},'PUBLISHED-APP': {'annual_cost': '42','month_to_month_cost': '50.40','on_demand_cost': '61.20'},'FEATURE-FLAGS': {'annual_cost': '66','month_to_month_cost': '106.80','on_demand_cost': '120'},'FEATURE-FLAGS-10M': {'annual_cost': '54','month_to_month_cost': '87.60','on_demand_cost': '110.40'},'LLM-OBSERVABILITY-15DAY': {'annual_cost': '192','month_to_month_cost': '240','on_demand_cost': '288'},'LLM-OBSERVABILITY-ADDL-10K': {'annual_cost': '4.20','month_to_month_cost': '5.04','on_demand_cost': '6'},'LLM-OBSERVABILITY-15DAY-FREE': {'annual_cost': '0','month_to_month_cost': '0',},'LLM-OBSERVABILITY-30DAY': {'annual_cost': '1.80','month_to_month_cost': '1.80','on_demand_cost': '1.80'},'LLM-OBSERVABILITY-60DAY': {'annual_cost': '3.60','month_to_month_cost': '3.60','on_demand_cost': '3.60'},'LLM-OBSERVABILITY-90DAY': {'annual_cost': '4.80','month_to_month_cost': '4.80','on_demand_cost': '4.80'},'KUBERNETES-AUTOSCALING': {'annual_cost': '3.60','month_to_month_cost': '4.32','on_demand_cost': '5.184'},'EDGE-DEVICE-MONT': {'annual_cost': '6.00','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'AI-CREDITS': {'annual_cost': '600','month_to_month_cost': '720',},'AI-CREDITS-OD': {'on_demand_cost': '1.56'},'APM-INGEST': {'annual_cost': '0.60','month_to_month_cost': '0.60','on_demand_cost': '0.60'},'DATADOG-DISASTER-RECOVERY': {},},'uk1':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'HOSTS-ENTERP': {'annual_cost': '27.60','month_to_month_cost': '32.40','on_demand_cost': '32.40'},'HOST-DEVSECOPS-PRO': {'annual_cost': '26.40','month_to_month_cost': '32.40','on_demand_cost': '32.40'},'HOST-DEVSECOPS-ENT': {'annual_cost': '40.80','month_to_month_cost': '49.20','on_demand_cost': '49.20'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.80','month_to_month_cost': '1.80','on_demand_cost': '0.0036'},'CONT-EXCL-AGENT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'CM-100': {'annual_cost': '6','month_to_month_cost': '6','on_demand_cost': '6'},'custom_metrics_level_1': {'annual_cost': '4.80',},'custom_metrics_level_2': {'annual_cost': '4.20',},'custom_metrics_level_3': {'annual_cost': '3.60',},'custom_metrics_level_4': {'annual_cost': '2.88',},'custom_metrics_level_5': {'annual_cost': '1.20',},'CM-INGEST': {'annual_cost': '0.120','month_to_month_cost': '0.120','on_demand_cost': '0.120'},'CUSTOM-EVENTS': {'annual_cost': '2.40','month_to_month_cost': '2.88','on_demand_cost': '3.60'},'network_path': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'HOSTS-NETWORK': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SNMP-DEVICE': {'annual_cost': '8.40','month_to_month_cost': '10.20','on_demand_cost': '12.24'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '4.80','month_to_month_cost': '5.76','on_demand_cost': '6.912'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.72','month_to_month_cost': '0.864','on_demand_cost': '1.032'},'NETFLOW-MONITORING': {'annual_cost': '0.78','month_to_month_cost': '0.936','on_demand_cost': '1.128'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.90','month_to_month_cost': '1.08','on_demand_cost': '1.296'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '1.02','month_to_month_cost': '1.224','on_demand_cost': '1.464'},'SERVERLESS-APPS': {'annual_cost': '3.60','month_to_month_cost': '4.80','on_demand_cost': '5.184'},'SERVERLESS-INFRA': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SERVERLESS-APPS-APM': {'annual_cost': '7.20','month_to_month_cost': '8.64','on_demand_cost': '10.80'},'SERVERLESS-APM': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'ccm_spend_monitored_ent': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'LOG-INGEST': {'annual_cost': '0.120','month_to_month_cost': '0.120','on_demand_cost': '0.120'},'LOGS-3DAY': {'annual_cost': '1.272','month_to_month_cost': '1.524','on_demand_cost': '1.908'},'LOGS-7DAY': {'annual_cost': '1.524','month_to_month_cost': '1.824','on_demand_cost': '2.292'},'LOGS-15DAY': {'annual_cost': '2.040','month_to_month_cost': '2.448','on_demand_cost': '3.06'},'LOGS-30DAY': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'FLEX-STORED-LOGS': {'annual_cost': '0.06','month_to_month_cost': '0.072','on_demand_cost': '0.09'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.72','month_to_month_cost': '0.864','on_demand_cost': '1.08'},'LOG-FW': {'annual_cost': '0.30','month_to_month_cost': '0.30','on_demand_cost': '0.30'},'SDS-PARTIAL': {'annual_cost': '0.036','month_to_month_cost': '0.04','on_demand_cost': '0.054'},'SDS': {'annual_cost': '0.36','month_to_month_cost': '0.432','on_demand_cost': '0.54'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'OBS-PIPES': {'annual_cost': '0.114','month_to_month_cost': '0.12','on_demand_cost': '0.144'},'OBS-PIPES-PLUS': {'annual_cost': '2340','month_to_month_cost': '2808','on_demand_cost': '3369.60'},'LOGS-ARCHIVE-SEARCH': {'annual_cost': '0.060','month_to_month_cost': '0.072','on_demand_cost': '0.084'},'INFRA-STORAGE-MGMT': {'annual_cost': '0.42','month_to_month_cost': '0.504','on_demand_cost': '0.60'},'HOSTS-APM': {'annual_cost': '37.20','month_to_month_cost': '43.20','on_demand_cost': '43.20'},'SPANS-INGEST': {'annual_cost': '0.12','month_to_month_cost': '0.12','on_demand_cost': '0.12'},'TRACE-7DAY': {'annual_cost': '1.524','month_to_month_cost': '1.824','on_demand_cost': '2.292'},'TRACE-15DAY': {'annual_cost': '2.04','month_to_month_cost': '2.448','on_demand_cost': '3.06'},'TRACE-30DAY': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'APM-HOST-PRO': {'annual_cost': '42','month_to_month_cost': '50.40','on_demand_cost': '50.40'},'APM-HOST-ENT': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '57.60'},'HOSTS-APM-STANDALONE': {'annual_cost': '43.20','month_to_month_cost': '50.17','on_demand_cost': '50.17'},'APM-PRO-STANDALONE': {'annual_cost': '49.20','month_to_month_cost': '59.04','on_demand_cost': '59.04'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '56.40','month_to_month_cost': '67.68','on_demand_cost': '67.68'},'USM-WITHIN-INFRA-HOST': {'annual_cost': '10.80','month_to_month_cost': '12.96','on_demand_cost': '15.60'},'DSM': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'PROF-HOSTS': {'annual_cost': '22.80','month_to_month_cost': '27.60','on_demand_cost': '27.60'},'FARGATE-PROF': {'annual_cost': '1.44','month_to_month_cost': '1.68','on_demand_cost': '2.04'},'PROF-CONT': {'annual_cost': '2.40','month_to_month_cost': '2.40','on_demand_cost': '0.0048'},'HOSTS-DBM': {'annual_cost': '84','month_to_month_cost': '100.80','on_demand_cost': '100.80'},'DJM-HOST-HR': {'annual_cost': '0.06','month_to_month_cost': '0.072','on_demand_cost': '0.0864'},'DO-JOBS-MONITORING-SERVERLESS': {},'DO-JOBS-MONITORING-ORCHESTRATORS': {'annual_cost': '0.12','month_to_month_cost': '0.144','on_demand_cost': '0.1728'},'DO-QUALITY-MONITORING': {'annual_cost': '19.20','month_to_month_cost': '25.20','on_demand_cost': '28.80'},'NQ-10': {},'PIP-VIS': {'annual_cost': '9.60','month_to_month_cost': '11.52','on_demand_cost': '14.40'},'SD-CODE-COVERAGE': {'annual_cost': '9.60','month_to_month_cost': '11.52','on_demand_cost': '14.40'},'TES-VIS': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'PIP-SPA-VIS': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'TEST-SPA-VIS': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.50'},'CSM-HOST-PRO': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '14.40'},'SEC-CONT': {'annual_cost': '0.60','month_to_month_cost': '0.60','on_demand_cost': '0.0012'},'CSM-HOST-ENT': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '36'},'CSM-CONT-ENT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'CWS-HOSTS': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '21.60'},'CWS-CONT': {'annual_cost': '1.20','month_to_month_cost': '1.20','on_demand_cost': '0.0024'},'FARGATE-CWS': {'annual_cost': '3.12','month_to_month_cost': '3.72','on_demand_cost': '4.44'},'APPSEC-HOSTS': {'annual_cost': '37.20','month_to_month_cost': '43.20','on_demand_cost': '43.20'},'FARGATE-ASM': {'annual_cost': '2.40','month_to_month_cost': '2.88','on_demand_cost': '3.48'},'APPSEC-FARGATE-SCA': {'annual_cost': '1.20','month_to_month_cost': '1.44','on_demand_cost': '1.68'},'SERVERLESS-ASM': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'SIEM-INDEXED': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '9'},'APPSEC-VM-OSS-HOSTS': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '18'},'CA-STATIC-SCA': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'CODE-SECURITY-HOST': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'CA-SAST': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'IAC-SECURITY': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '26.40'},'CODE-SECURITY-SECRETS-COMMITTER': {'annual_cost': '18','month_to_month_cost': '21.60','on_demand_cost': '26.40'},'CA-COMBO-COMMITTERS': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '69.12'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.80','month_to_month_cost': '2.16','on_demand_cost': '2.64'},'RUM-INGESTED': {'annual_cost': '0.18','month_to_month_cost': '0.216','on_demand_cost': '0.264'},'RUM-INVESTIGATE': {'annual_cost': '3.60','month_to_month_cost': '4.32','on_demand_cost': '5.40'},'PRODUCT-ANALYTICS': {'annual_cost': '0.96','month_to_month_cost': '1.20','on_demand_cost': '1.44'},'RUM-SESSION-REPLAY': {'annual_cost': '2.16','month_to_month_cost': '2.64','on_demand_cost': '3.12'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '3','month_to_month_cost': '3.60','on_demand_cost': '4.32'},'DEM-EXPERIMENTS': {'annual_cost': '540','month_to_month_cost': '636','on_demand_cost': '690'},'SYNTHETICS-10K': {'annual_cost': '6','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'SYNTHETICS-1K': {'annual_cost': '14.40','month_to_month_cost': '18','on_demand_cost': '21.60'},'CI-MOBILE-APP-TEST': {'annual_cost': '60','month_to_month_cost': '72','on_demand_cost': '86.40'},'CI-APP-TEST': {'annual_cost': '94.80','month_to_month_cost': '114','on_demand_cost': '136.80'},'ON-CALL': {'annual_cost': '24','month_to_month_cost': '28.80','on_demand_cost': '34.80'},'INCIDENT-MANAGEMENT': {'annual_cost': '36','month_to_month_cost': '43.20','on_demand_cost': '51.84'},'ENT-INCIDENT-RESPONSE': {'annual_cost': '48','month_to_month_cost': '57.60','on_demand_cost': '69.60'},'EVT-MGT-CORRELATION': {'annual_cost': '0.12','month_to_month_cost': '0.144','on_demand_cost': '0.168'},'WORKFLOW-WORKFLOW': {'annual_cost': '12','month_to_month_cost': '14.40','on_demand_cost': '16.80'},'ERR-TRACKING': {'annual_cost': '0.30','month_to_month_cost': '0.36','on_demand_cost': '0.42'},'err_tracking_tier_1': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'err_tracking_tier_2': {'annual_cost': '0.288','month_to_month_cost': '0.348','on_demand_cost': '0.42'},'err_tracking_tier_3': {'annual_cost': '0.240','month_to_month_cost': '0.288','on_demand_cost': '0.36'},'err_tracking_tier_4': {'annual_cost': '0.192','month_to_month_cost': '0.232','on_demand_cost': '0.288'},'err_tracking_tier_5': {'annual_cost': '0.144','month_to_month_cost': '0.172','on_demand_cost': '0.228'},'err_tracking_tier_6': {'annual_cost': '0.120','month_to_month_cost': '0.144','on_demand_cost': '0.192'},'ERR-TRACKING-50K': {'annual_cost': '30','month_to_month_cost': '36','on_demand_cost': '43.20'},'ERR-TRACKING-100K': {'annual_cost': '45','month_to_month_cost': '54','on_demand_cost': '66'},'ERR-TRACKING-300K': {'annual_cost': '95.40','month_to_month_cost': '114','on_demand_cost': '142.80'},'ERR-TRACKING-500K': {'annual_cost': '145.80','month_to_month_cost': '174','on_demand_cost': '219.60'},'ERR-TRACKING-1M': {'annual_cost': '247.80','month_to_month_cost': '294','on_demand_cost': '375.60'},'ERR-TRACKING-3M': {'annual_cost': '655.80','month_to_month_cost': '774','on_demand_cost': '999.60'},'ERR-TRACKING-5M': {'annual_cost': '1,063.80','month_to_month_cost': '1,254','on_demand_cost': '1,623.60'},'ERR-TRACKING-10M': {'annual_cost': '2,083.80','month_to_month_cost': '2,454','on_demand_cost': '3,183.60'},'ERR-TRACKING-15M': {'annual_cost': '2,803.80','month_to_month_cost': '3,294','on_demand_cost': '4,503.60'},'ERR-TRACKING-20M': {'annual_cost': '3,523.80','month_to_month_cost': '4,134','on_demand_cost': '5,823.60'},'ERR-TRACKING-25M': {'annual_cost': '4,123.80','month_to_month_cost': '4,854','on_demand_cost': '6,903.60'},'ERR-TRACKING-30M': {'annual_cost': '4,723.80','month_to_month_cost': '5,574','on_demand_cost': '7,983.60'},'ERR-TRACKING-35M': {'annual_cost': '5,323.80','month_to_month_cost': '6,294','on_demand_cost': '9,063.60'},'ERR-TRACKING-40M': {'annual_cost': '5,923.80','month_to_month_cost': '7,014','on_demand_cost': '10,143.60'},'ERR-TRACKING-45M': {'annual_cost': '6,523.80','month_to_month_cost': '7,734','on_demand_cost': '11,223.60'},'ERR-TRACKING-50M': {'annual_cost': '7,123.80','month_to_month_cost': '8,454','on_demand_cost': '12,303.60'},'PUBLISHED-APP': {'annual_cost': '42','month_to_month_cost': '50.40','on_demand_cost': '61.20'},'FEATURE-FLAGS': {'annual_cost': '66','month_to_month_cost': '106.80','on_demand_cost': '120'},'FEATURE-FLAGS-10M': {'annual_cost': '54','month_to_month_cost': '87.60','on_demand_cost': '110.40'},'LLM-OBSERVABILITY-15DAY': {'annual_cost': '192','month_to_month_cost': '240','on_demand_cost': '288'},'LLM-OBSERVABILITY-ADDL-10K': {'annual_cost': '4.20','month_to_month_cost': '5.04','on_demand_cost': '6'},'LLM-OBSERVABILITY-15DAY-FREE': {'annual_cost': '0','month_to_month_cost': '0',},'LLM-OBSERVABILITY-30DAY': {'annual_cost': '1.80','month_to_month_cost': '1.80','on_demand_cost': '1.80'},'LLM-OBSERVABILITY-60DAY': {'annual_cost': '3.60','month_to_month_cost': '3.60','on_demand_cost': '3.60'},'LLM-OBSERVABILITY-90DAY': {'annual_cost': '4.80','month_to_month_cost': '4.80','on_demand_cost': '4.80'},'KUBERNETES-AUTOSCALING': {'annual_cost': '3.60','month_to_month_cost': '4.32','on_demand_cost': '5.184'},'EDGE-DEVICE-MONT': {'annual_cost': '6.00','month_to_month_cost': '7.20','on_demand_cost': '8.64'},'AI-CREDITS': {'annual_cost': '600','month_to_month_cost': '720',},'AI-CREDITS-OD': {'on_demand_cost': '1.56'},'APM-INGEST': {'annual_cost': '0.60','month_to_month_cost': '0.60','on_demand_cost': '0.60'},'DATADOG-DISASTER-RECOVERY': {},},'us-fed':{'infrastructure': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'HOSTS-PRO': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '22.50'},'HOSTS-ENTERP': {'annual_cost': '28.75','month_to_month_cost': '33.75','on_demand_cost': '33.75'},'CONT-DEVSECOPS-ENT': {'annual_cost': '1.88','month_to_month_cost': '1.88','on_demand_cost': '0.004'},'HOST-DEVSECOPS-PRO': {'annual_cost': '27.50','month_to_month_cost': '33.75','on_demand_cost': '33.75'},'HOST-DEVSECOPS-ENT': {'annual_cost': '42.50','month_to_month_cost': '51.25','on_demand_cost': '51.25'},'CONT-EXCL-AGENT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'CM-100': {'annual_cost': '6.25','month_to_month_cost': '6.25','on_demand_cost': '6.25'},'custom_metrics_level_1': {'annual_cost': '5.00',},'custom_metrics_level_2': {'annual_cost': '4.38',},'custom_metrics_level_3': {'annual_cost': '3.75',},'custom_metrics_level_4': {'annual_cost': '3.13',},'custom_metrics_level_5': {'annual_cost': '1.25',},'CM-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'CUSTOM-EVENTS': {'annual_cost': '2.50','month_to_month_cost': '3','on_demand_cost': '3.75'},'network_path': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'HOSTS-NETWORK': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SNMP-DEVICE': {'annual_cost': '8.75','month_to_month_cost': '10.63','on_demand_cost': '12.75'},'NETWORK-DEVICE-WIRELESS': {'annual_cost': '5','month_to_month_cost': '6','on_demand_cost': '7.20'},'NETFLOW-MONITORING-15DAY': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.08'},'NETFLOW-MONITORING': {'annual_cost': '0.82','month_to_month_cost': '0.98','on_demand_cost': '1.18'},'NETFLOW-MONITORING-60DAY': {'annual_cost': '0.94','month_to_month_cost': '1.13','on_demand_cost': '1.35'},'NETFLOW-MONITORING-90DAY': {'annual_cost': '1.06','month_to_month_cost': '1.28','on_demand_cost': '1.53'},'SERVERLESS-APPS': {'annual_cost': '3.75','month_to_month_cost': '5','on_demand_cost': '5.40'},'SERVERLESS-INFRA': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SERVERLESS-APPS-APM': {'annual_cost': '7.50','month_to_month_cost': '9','on_demand_cost': '11.25'},'SERVERLESS-APM': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'ccm_cost_visibility': {'annual_cost': '0','month_to_month_cost': '0','on_demand_cost': '0'},'ccm_spend_monitored_pro': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'ccm_spend_monitored_ent': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '18.75'},'LOG-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'LOGS-3DAY': {'annual_cost': '1.33','month_to_month_cost': '1.59','on_demand_cost': '1.99'},'LOGS-7DAY': {'annual_cost': '1.59','month_to_month_cost': '1.90','on_demand_cost': '2.39'},'LOGS-15DAY': {'annual_cost': '2.13','month_to_month_cost': '2.55','on_demand_cost': '3.19'},'LOGS-30DAY': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'FLEX-STORED-LOGS': {'annual_cost': '0.0625','month_to_month_cost': '0.075','on_demand_cost': '0.094'},'FLEX-COMPUTE-LOGS-XS': {},'FLEX-COMPUTE-LOGS-S': {},'FLEX-COMPUTE-LOGS-M': {},'FLEX-COMPUTE-LOGS-L': {},'FLEX-LOGS-STARTER': {'annual_cost': '0.75','month_to_month_cost': '0.90','on_demand_cost': '1.125'},'LOG-FW': {'annual_cost': '0.3125','month_to_month_cost': '0.3125','on_demand_cost': '0.3125'},'SDS-PARTIAL': {'annual_cost': '0.04','month_to_month_cost': '0.045','on_demand_cost': '0.056'},'SDS': {'annual_cost': '0.38','month_to_month_cost': '0.45','on_demand_cost': '0.56'},'AUDIT-TRAIL': {'annual_cost': '2','month_to_month_cost': '3','on_demand_cost': '3'},'HOSTS-APM': {'annual_cost': '38.75','month_to_month_cost': '45','on_demand_cost': '45'},'SPANS-INGEST': {'annual_cost': '0.13','month_to_month_cost': '0.13','on_demand_cost': '0.13'},'TRACE-7DAY': {'annual_cost': '1.59','month_to_month_cost': '1.90','on_demand_cost': '2.39'},'TRACE-15DAY': {'annual_cost': '2.13','month_to_month_cost': '2.55','on_demand_cost': '3.19'},'TRACE-30DAY': {'annual_cost': '3.13','month_to_month_cost': '3.75','on_demand_cost': '4.69'},'APM-HOST-ENT': {'annual_cost': '50','month_to_month_cost': '60','on_demand_cost': '60'},'HOSTS-APM-STANDALONE': {'annual_cost': '45','month_to_month_cost': '52.26','on_demand_cost': '52.26'},'APM-ENTERPRISE-STANDALONE': {'annual_cost': '58.75','month_to_month_cost': '70.50','on_demand_cost': '70.50'},'PROF-HOSTS': {'annual_cost': '23.75','month_to_month_cost': '28.75','on_demand_cost': '28.75'},'FARGATE-PROF': {'annual_cost': '1.50','month_to_month_cost': '1.75','on_demand_cost': '2.13'},'PROF-CONT': {'annual_cost': '2.50','month_to_month_cost': '2.50','on_demand_cost': '0.005'},'CSM-HOST-PRO': {'annual_cost': '12.50','month_to_month_cost': '15','on_demand_cost': '15'},'SEC-CONT': {'annual_cost': '0.63','month_to_month_cost': '0.63','on_demand_cost': '0.001'},'CSM-HOST-ENT': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '37.50'},'CSM-CONT-ENT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'CWS-HOSTS': {'annual_cost': '18.75','month_to_month_cost': '22.50','on_demand_cost': '22.50'},'CWS-CONT': {'annual_cost': '1.25','month_to_month_cost': '1.25','on_demand_cost': '0.003'},'FARGATE-CWS': {'annual_cost': '3.25','month_to_month_cost': '3.875','on_demand_cost': '4.625'},'SIEM-INDEXED': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9.38'},'RUM-BROWSER-MOBILE': {'annual_cost': '1.88','month_to_month_cost': '2.25','on_demand_cost': '2.75'},'RUM-INGESTED': {'annual_cost': '0.188','month_to_month_cost': '0.225','on_demand_cost': '0.275'},'RUM-INVESTIGATE': {'annual_cost': '3.75','month_to_month_cost': '4.50','on_demand_cost': '5.625'},'RUM-SESSION-REPLAY': {'annual_cost': '2.25','month_to_month_cost': '2.75','on_demand_cost': '3.25'},'RUM-SESSION-REPLAY-ADD-ON': {'annual_cost': '3.125','month_to_month_cost': '3.75','on_demand_cost': '4.50'},'SYNTHETICS-10K': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9'},'SYNTHETICS-1K': {'annual_cost': '15','month_to_month_cost': '18.75','on_demand_cost': '22.50'},'CI-APP-TEST': {'annual_cost': '98.75','month_to_month_cost': '118.75','on_demand_cost': '142.50'},'ON-CALL': {'annual_cost': '25','month_to_month_cost': '30','on_demand_cost': '36.25'},'INCIDENT-MANAGEMENT': {'annual_cost': '37.50','month_to_month_cost': '45','on_demand_cost': '54'},'ERR-TRACKING': {'annual_cost': '0.31','month_to_month_cost': '0.38','on_demand_cost': '0.45'},'err_tracking_tier_1': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'err_tracking_tier_2': {'annual_cost': '0.3125','month_to_month_cost': '0.375','on_demand_cost': '0.475'},'err_tracking_tier_3': {'annual_cost': '0.2625','month_to_month_cost': '0.3125','on_demand_cost': '0.40'},'err_tracking_tier_4': {'annual_cost': '0.2125','month_to_month_cost': '0.25','on_demand_cost': '0.325'},'err_tracking_tier_5': {'annual_cost': '0.15','month_to_month_cost': '0.175','on_demand_cost': '0.275'},'err_tracking_tier_6': {'annual_cost': '0.125','month_to_month_cost': '0.15','on_demand_cost': '0.225'},'ERR-TRACKING-50K': {'annual_cost': '31.25','month_to_month_cost': '37.50','on_demand_cost': '45'},'ERR-TRACKING-100K': {'annual_cost': '46.875','month_to_month_cost': '56.25','on_demand_cost': '68.75'},'ERR-TRACKING-300K': {'annual_cost': '99.375','month_to_month_cost': '118.75','on_demand_cost': '148.75'},'ERR-TRACKING-500K': {'annual_cost': '151.875','month_to_month_cost': '181.25','on_demand_cost': '228.75'},'ERR-TRACKING-1M': {'annual_cost': '258.125','month_to_month_cost': '306.25','on_demand_cost': '391.25'},'ERR-TRACKING-3M': {'annual_cost': '683.125','month_to_month_cost': '806.25','on_demand_cost': '1,041.25'},'ERR-TRACKING-5M': {'annual_cost': '1,108.125','month_to_month_cost': '1,306.25','on_demand_cost': '1,691.25'},'ERR-TRACKING-10M': {'annual_cost': '2,170.625','month_to_month_cost': '2,556.25','on_demand_cost': '3,316.25'},'ERR-TRACKING-15M': {'annual_cost': '2,920.625','month_to_month_cost': '3,431.25','on_demand_cost': '4,691.25'},'ERR-TRACKING-20M': {'annual_cost': '3,670.625','month_to_month_cost': '4,306.25','on_demand_cost': '6,066.25'},'ERR-TRACKING-25M': {'annual_cost': '4,295.625','month_to_month_cost': '5,056.25','on_demand_cost': '7,191.25'},'ERR-TRACKING-30M': {'annual_cost': '4,920.625','month_to_month_cost': '5,806.25','on_demand_cost': '8,316.25'},'ERR-TRACKING-35M': {'annual_cost': '5,545.625','month_to_month_cost': '6,556.25','on_demand_cost': '9,441.25'},'ERR-TRACKING-40M': {'annual_cost': '6,170.625','month_to_month_cost': '7,306.25','on_demand_cost': '10,566.25'},'ERR-TRACKING-45M': {'annual_cost': '6,795.625','month_to_month_cost': '8,056.25','on_demand_cost': '11,691.25'},'ERR-TRACKING-50M': {'annual_cost': '7,420.625','month_to_month_cost': '8,806.25','on_demand_cost': '12,816.25'},'HOSTS-DBM': {'annual_cost': '87.50','month_to_month_cost': '105','on_demand_cost': '105'},'NQ-10': {},'EDGE-DEVICE-MONT': {'annual_cost': '6.25','month_to_month_cost': '7.50','on_demand_cost': '9.00'},'APM-INGEST': {'annual_cost': '0.625','month_to_month_cost': '0.625','on_demand_cost': '0.625'},}, },}"><div class=row><div class="col-12 col-lg-3 sticky-selectors-mobile py-2 py-lg-0 mb-4 mb-lg-0"><div class=product-nav-inner><div class="region-selector dropdown order-1 order-lg-0 d-flex flex-column" x-data="{open: false}"><a data-dd-action-name="region-selector: icon: datadog site" href=https://docs.datadoghq.com/getting_started/site/ target=_blank class="region-info d-flex align-items-center"><span>DATADOG SITE</span><svg class='<nil>' width="16" height="15" viewBox="0 0 16 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="question">
<path id="Vector" d="M8.62505 9.53125H7.37505V8.28125C7.37505 7.42188 8.07818 6.71875 8.93755 6.71875C9.39849 6.71875 9.70318 6.57812 9.87505 6.28906C10.0235 6.04688 10.0313 5.77344 10.0313 5.77344V5.72656C10.0313 5.66406 10.0235 5.30469 9.74224 5.00781C9.44537 4.69531 8.89068 4.52344 8.14849 4.52344C7.2813 4.52344 6.64068 4.71875 6.28912 5.08594C5.9688 5.4375 5.9688 5.84375 5.9688 5.89062V5.92188V5.9375V6.09375H4.7188V5.95312C4.71099 5.76562 4.7188 4.96094 5.36724 4.25781C5.9688 3.60938 6.9063 3.28125 8.1563 3.28125C9.2813 3.28125 10.1329 3.58594 10.6797 4.17969C11.2969 4.84375 11.2891 5.625 11.2813 5.80469C11.2813 5.97656 11.2266 6.74219 10.6407 7.33594C10.2188 7.75781 9.64849 7.96875 8.93755 7.96875C8.76568 7.96875 8.62505 8.10938 8.62505 8.28125V9.53125Z" fill="black"/>
<path id="Vector_2" d="M8 12.0312C8.51777 12.0312 8.9375 11.6115 8.9375 11.0938C8.9375 10.576 8.51777 10.1562 8 10.1562C7.48223 10.1562 7.0625 10.576 7.0625 11.0938C7.0625 11.6115 7.48223 12.0312 8 12.0312Z" fill="black"/>
<path id="Vector_3" d="M8 14.375C4.21094 14.375 1.125 11.2891 1.125 7.5C1.125 3.71094 4.21094 0.625 8 0.625C11.7891 0.625 14.875 3.71094 14.875 7.5C14.875 11.2891 11.7891 14.375 8 14.375ZM8 1.875C4.89844 1.875 2.375 4.39844 2.375 7.5C2.375 10.6016 4.89844 13.125 8 13.125C11.1016 13.125 13.625 10.6016 13.625 7.5C13.625 4.39844 11.1016 1.875 8 1.875Z" fill="black"/>
</g>
</svg></a><div class=region-dropdown-container><button aria-label="Region dropdown" class=region-dropdown type=button :aria-expanded=open @click="open = ! open" :data-dd-action-name="open ? 'region-selector: dropdown: close' : 'region-selector: dropdown: open'">
<span class=menu-text x-text="allowed_regions_display.find(item => item.key === region).display_name">us</span></button><ul class=region-dropdown-options aria-label="Region dropdown options" style=display:none :aria-expanded=open x-show=open @click.outside="open = false"><template x-for="allowed_region in allowed_regions_display"><li><a role=option :data-dd-action-name="`region-selector: dropdown: ${allowed_region}`" @click.prevent="
                          region = allowed_region.key;
                          open = false;
                          fedRegionSelected = allowed_region.key.includes('fed') ? true : false
                          if (fedRegionSelected && fedProduct === false) {
                            product =  'infrastructure-monitoring';
                            removeQueryParam('tab');
                            updateQueryParam('site', `${region}`);
                            updateQueryParam('product', `${product}`)
                          } else {
                            updateQueryParam('site', `${region}`);
                          }
                      " x-text=allowed_region.display_name.toUpperCase()></a></li></template></ul></div></div><div class="inner-nav-box order-0 order-lg-1" :class="fedRegionSelected ? 'fed-region-selected' : ''"><div class="dropdown product-selector d-flex d-lg-none" x-data="{
                        open: false,
                        displayName: product,
                        
                    }" x-init="
                        
                    "><button id=pricing-product-dropdown class=pricing-product-dropdown type=button :aria-expanded=open @click="open = ! open" :data-dd-action-name="open ? 'side-nav: dropdown: close' : 'side-nav: dropdown: open'">
<span class=menu-text x-text=displayName></span></button><div class=dropdown-options-container aria-label=pricing-product-dropdown style=display:none :aria-expanded=open x-show=open @click.outside="open = false"><ul class=pricing-nav-list><li class=product-category><span class=product-category-title><i class="icon-bits-ai d-flex"></i>AI</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=ai-credits#products" data-dd-action-name="side-nav: link: ai-credits" class=non-fed-product :class="product == 'ai-credits' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'AI Credits';
            product = 'ai-credits';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>AI Credits</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=llm-observability#products" data-dd-action-name="side-nav: link: llm-observability" class=non-fed-product :class="product == 'llm-observability' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Agent Observability';
            product = 'llm-observability';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Agent Observability</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-host-map d-flex"></i>Infrastructure</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#products" data-dd-action-name="side-nav: link: infrastructure-monitoring" :class="product == 'infrastructure-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Infrastructure';
            product = 'infrastructure-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Infrastructure</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=storage-management#products" data-dd-action-name="side-nav: link: storage-management" class=non-fed-product :class="product == 'storage-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Storage Management';
            product = 'storage-management';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Storage Management</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=edge-device-monitoring#products" data-dd-action-name="side-nav: link: edge-device-monitoring" :class="product == 'edge-device-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Edge Device Monitoring';
            product = 'edge-device-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Edge Device Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=kubernetes-autoscaling#products" data-dd-action-name="side-nav: link: kubernetes-autoscaling" class=non-fed-product :class="product == 'kubernetes-autoscaling' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Kubernetes Autoscaling';
            product = 'kubernetes-autoscaling';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Kubernetes Autoscaling</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=serverless-monitoring#products" data-dd-action-name="side-nav: link: serverless-monitoring" :class="product == 'serverless-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Serverless Monitoring';
            product = 'serverless-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Serverless Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=network-monitoring#products" data-dd-action-name="side-nav: link: network-monitoring" :class="product == 'network-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Network Monitoring';
            product = 'network-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Network Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=datadog-disaster-recovery#products" data-dd-action-name="side-nav: link: datadog-disaster-recovery" class=non-fed-product :class="product == 'datadog-disaster-recovery' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Datadog Disaster Recovery';
            product = 'datadog-disaster-recovery';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Datadog Disaster Recovery</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-cost-management#products" data-dd-action-name="side-nav: link: cloud-cost-management" :class="product == 'cloud-cost-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud Cost Management';
            product = 'cloud-cost-management';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud Cost Management</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-apm d-flex"></i>Applications</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=apm#products" data-dd-action-name="side-nav: link: apm" :class="product == 'apm' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Application Performance Monitoring';
            product = 'apm';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Application Performance Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=managed-platform-otlp#products" data-dd-action-name="side-nav: link: managed-platform-otlp" :class="product == 'managed-platform-otlp' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'OTLP APM Ingest';
            product = 'managed-platform-otlp';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>OTLP APM Ingest</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=serverless-monitoring#products" data-dd-action-name="side-nav: link: serverless-monitoring" :class="product == 'serverless-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Serverless Monitoring';
            product = 'serverless-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Serverless Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=universal-service-monitoring#products" data-dd-action-name="side-nav: link: universal-service-monitoring" class=non-fed-product :class="product == 'universal-service-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Universal Service Monitoring';
            product = 'universal-service-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Universal Service Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=data-streams-monitoring#products" data-dd-action-name="side-nav: link: data-streams-monitoring" class=non-fed-product :class="product == 'data-streams-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Data Streams Monitoring';
            product = 'data-streams-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Data Streams Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=database-monitoring#products" data-dd-action-name="side-nav: link: database-monitoring" :class="product == 'database-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Database Monitoring';
            product = 'database-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Database Monitoring</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-data-observability-wui d-flex"></i>Data Observability</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=jobs-monitoring#products" data-dd-action-name="side-nav: link: jobs-monitoring" class=non-fed-product :class="product == 'jobs-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Jobs Monitoring';
            product = 'jobs-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Jobs Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=quality-monitoring#products" data-dd-action-name="side-nav: link: quality-monitoring" class=non-fed-product :class="product == 'quality-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Quality Monitoring';
            product = 'quality-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Quality Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-log d-flex"></i>Logs</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=log-management#products" data-dd-action-name="side-nav: link: log-management" :class="product == 'log-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Log Management';
            product = 'log-management';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Log Management</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=error-tracking#products" data-dd-action-name="side-nav: link: error-tracking" :class="product == 'error-tracking' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Error Tracking';
            product = 'error-tracking';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Error Tracking</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=sensitive-data-scanner#products" data-dd-action-name="side-nav: link: sensitive-data-scanner" :class="product == 'sensitive-data-scanner' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Sensitive Data Scanner';
            product = 'sensitive-data-scanner';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Sensitive Data Scanner</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=audit-trail#products" data-dd-action-name="side-nav: link: audit-trail" :class="product == 'audit-trail' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Audit Trail';
            product = 'audit-trail';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Audit Trail</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=observability-pipelines#products" data-dd-action-name="side-nav: link: observability-pipelines" class=non-fed-product :class="product == 'observability-pipelines' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Observability Pipelines';
            product = 'observability-pipelines';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Observability Pipelines</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=archive-search#products" data-dd-action-name="side-nav: link: archive-search" class=non-fed-product :class="product == 'archive-search' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Archive Search';
            product = 'archive-search';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Archive Search</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-security-platform d-flex"></i>Security</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=workload-protection#products" data-dd-action-name="side-nav: link: workload-protection" :class="product == 'workload-protection' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Workload Protection';
            product = 'workload-protection';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Workload Protection</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-siem#products" data-dd-action-name="side-nav: link: cloud-siem" :class="product == 'cloud-siem' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud SIEM';
            product = 'cloud-siem';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud SIEM</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-security#products" data-dd-action-name="side-nav: link: cloud-security" :class="product == 'cloud-security' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud Security';
            product = 'cloud-security';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud Security</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=app-and-api-protection#products" data-dd-action-name="side-nav: link: app-and-api-protection" class=non-fed-product :class="product == 'app-and-api-protection' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'App and API Protection';
            product = 'app-and-api-protection';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>App and API Protection</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=code-security#products" data-dd-action-name="side-nav: link: code-security" class=non-fed-product :class="product == 'code-security' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Code Security';
            product = 'code-security';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Code Security</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-rum d-flex"></i>Digital Experience</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=error-tracking#products" data-dd-action-name="side-nav: link: error-tracking" :class="product == 'error-tracking' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Error Tracking';
            product = 'error-tracking';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Error Tracking</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=product-analytics#products" data-dd-action-name="side-nav: link: product-analytics" class=non-fed-product :class="product == 'product-analytics' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Product Analytics';
            product = 'product-analytics';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Product Analytics</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=experiments#products" data-dd-action-name="side-nav: link: experiments" class=non-fed-product :class="product == 'experiments' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Experiments';
            product = 'experiments';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Experiments</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=real-user-monitoring#products" data-dd-action-name="side-nav: link: real-user-monitoring" :class="product == 'real-user-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Real User Monitoring & Session Replay';
            product = 'real-user-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Real User Monitoring & Session Replay</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=synthetic-monitoring#products" data-dd-action-name="side-nav: link: synthetic-monitoring" :class="product == 'synthetic-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Synthetic Testing & Monitoring';
            product = 'synthetic-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Synthetic Testing & Monitoring</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-ci d-flex"></i>Software Delivery</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=code-coverage#products" data-dd-action-name="side-nav: link: code-coverage" class=non-fed-product :class="product == 'code-coverage' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Code Coverage';
            product = 'code-coverage';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Code Coverage</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=feature-flags#products" data-dd-action-name="side-nav: link: feature-flags" class=non-fed-product :class="product == 'feature-flags' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Feature Flags';
            product = 'feature-flags';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Feature Flags</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=ci-cd-monitoring#products" data-dd-action-name="side-nav: link: ci-cd-monitoring" class=non-fed-product :class="product == 'ci-cd-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'CI Pipeline Visibility';
            product = 'ci-cd-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>CI Pipeline Visibility</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=continuous-testing#products" data-dd-action-name="side-nav: link: continuous-testing" class=non-fed-product :class="product == 'continuous-testing' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Continuous Testing';
            product = 'continuous-testing';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Continuous Testing</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=test-optimization#products" data-dd-action-name="side-nav: link: test-optimization" class=non-fed-product :class="product == 'test-optimization' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Test Optimization';
            product = 'test-optimization';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Test Optimization</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-events d-flex"></i>Service Management</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=app-builder#products" data-dd-action-name="side-nav: link: app-builder" class=non-fed-product :class="product == 'app-builder' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'App Builder';
            product = 'app-builder';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>App Builder</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=incident-response#products" data-dd-action-name="side-nav: link: incident-response" :class="product == 'incident-response' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Incident Response';
            product = 'incident-response';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Incident Response</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=event-management#products" data-dd-action-name="side-nav: link: event-management" class=non-fed-product :class="product == 'event-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Event Management';
            product = 'event-management';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Event Management</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=workflow-automation#products" data-dd-action-name="side-nav: link: workflow-automation" class=non-fed-product :class="product == 'workflow-automation' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Workflow Automation';
            product = 'workflow-automation';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Workflow Automation</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li></ul></div></div><ul class="pricing-nav-list d-none d-lg-block"><li class=product-category><span class=product-category-title><i class="icon-bits-ai d-flex"></i>AI</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=ai-credits#products" data-dd-action-name="side-nav: link: ai-credits" class=non-fed-product :class="product == 'ai-credits' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'AI Credits';
            product = 'ai-credits';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>AI Credits</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=llm-observability#products" data-dd-action-name="side-nav: link: llm-observability" class=non-fed-product :class="product == 'llm-observability' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Agent Observability';
            product = 'llm-observability';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Agent Observability</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-host-map d-flex"></i>Infrastructure</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#products" data-dd-action-name="side-nav: link: infrastructure-monitoring" :class="product == 'infrastructure-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Infrastructure';
            product = 'infrastructure-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Infrastructure</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=storage-management#products" data-dd-action-name="side-nav: link: storage-management" class=non-fed-product :class="product == 'storage-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Storage Management';
            product = 'storage-management';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Storage Management</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=edge-device-monitoring#products" data-dd-action-name="side-nav: link: edge-device-monitoring" :class="product == 'edge-device-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Edge Device Monitoring';
            product = 'edge-device-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Edge Device Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=kubernetes-autoscaling#products" data-dd-action-name="side-nav: link: kubernetes-autoscaling" class=non-fed-product :class="product == 'kubernetes-autoscaling' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Kubernetes Autoscaling';
            product = 'kubernetes-autoscaling';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Kubernetes Autoscaling</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=serverless-monitoring#products" data-dd-action-name="side-nav: link: serverless-monitoring" :class="product == 'serverless-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Serverless Monitoring';
            product = 'serverless-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Serverless Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=network-monitoring#products" data-dd-action-name="side-nav: link: network-monitoring" :class="product == 'network-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Network Monitoring';
            product = 'network-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Network Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=datadog-disaster-recovery#products" data-dd-action-name="side-nav: link: datadog-disaster-recovery" class=non-fed-product :class="product == 'datadog-disaster-recovery' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Datadog Disaster Recovery';
            product = 'datadog-disaster-recovery';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Datadog Disaster Recovery</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-cost-management#products" data-dd-action-name="side-nav: link: cloud-cost-management" :class="product == 'cloud-cost-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud Cost Management';
            product = 'cloud-cost-management';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud Cost Management</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-apm d-flex"></i>Applications</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=apm#products" data-dd-action-name="side-nav: link: apm" :class="product == 'apm' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Application Performance Monitoring';
            product = 'apm';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Application Performance Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=managed-platform-otlp#products" data-dd-action-name="side-nav: link: managed-platform-otlp" :class="product == 'managed-platform-otlp' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'OTLP APM Ingest';
            product = 'managed-platform-otlp';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>OTLP APM Ingest</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=serverless-monitoring#products" data-dd-action-name="side-nav: link: serverless-monitoring" :class="product == 'serverless-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Serverless Monitoring';
            product = 'serverless-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Serverless Monitoring</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=universal-service-monitoring#products" data-dd-action-name="side-nav: link: universal-service-monitoring" class=non-fed-product :class="product == 'universal-service-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Universal Service Monitoring';
            product = 'universal-service-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Universal Service Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=data-streams-monitoring#products" data-dd-action-name="side-nav: link: data-streams-monitoring" class=non-fed-product :class="product == 'data-streams-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Data Streams Monitoring';
            product = 'data-streams-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Data Streams Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=database-monitoring#products" data-dd-action-name="side-nav: link: database-monitoring" :class="product == 'database-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Database Monitoring';
            product = 'database-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Database Monitoring</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-data-observability-wui d-flex"></i>Data Observability</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=jobs-monitoring#products" data-dd-action-name="side-nav: link: jobs-monitoring" class=non-fed-product :class="product == 'jobs-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Jobs Monitoring';
            product = 'jobs-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Jobs Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=quality-monitoring#products" data-dd-action-name="side-nav: link: quality-monitoring" class=non-fed-product :class="product == 'quality-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Quality Monitoring';
            product = 'quality-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Quality Monitoring</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-log d-flex"></i>Logs</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=log-management#products" data-dd-action-name="side-nav: link: log-management" :class="product == 'log-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Log Management';
            product = 'log-management';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Log Management</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=error-tracking#products" data-dd-action-name="side-nav: link: error-tracking" :class="product == 'error-tracking' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Error Tracking';
            product = 'error-tracking';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Error Tracking</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=sensitive-data-scanner#products" data-dd-action-name="side-nav: link: sensitive-data-scanner" :class="product == 'sensitive-data-scanner' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Sensitive Data Scanner';
            product = 'sensitive-data-scanner';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Sensitive Data Scanner</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=audit-trail#products" data-dd-action-name="side-nav: link: audit-trail" :class="product == 'audit-trail' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Audit Trail';
            product = 'audit-trail';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Audit Trail</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=observability-pipelines#products" data-dd-action-name="side-nav: link: observability-pipelines" class=non-fed-product :class="product == 'observability-pipelines' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Observability Pipelines';
            product = 'observability-pipelines';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Observability Pipelines</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=archive-search#products" data-dd-action-name="side-nav: link: archive-search" class=non-fed-product :class="product == 'archive-search' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Archive Search';
            product = 'archive-search';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Archive Search</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-security-platform d-flex"></i>Security</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=workload-protection#products" data-dd-action-name="side-nav: link: workload-protection" :class="product == 'workload-protection' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Workload Protection';
            product = 'workload-protection';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Workload Protection</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-siem#products" data-dd-action-name="side-nav: link: cloud-siem" :class="product == 'cloud-siem' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud SIEM';
            product = 'cloud-siem';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud SIEM</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=cloud-security#products" data-dd-action-name="side-nav: link: cloud-security" :class="product == 'cloud-security' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Cloud Security';
            product = 'cloud-security';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Cloud Security</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=app-and-api-protection#products" data-dd-action-name="side-nav: link: app-and-api-protection" class=non-fed-product :class="product == 'app-and-api-protection' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'App and API Protection';
            product = 'app-and-api-protection';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>App and API Protection</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=code-security#products" data-dd-action-name="side-nav: link: code-security" class=non-fed-product :class="product == 'code-security' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Code Security';
            product = 'code-security';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Code Security</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-rum d-flex"></i>Digital Experience</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=error-tracking#products" data-dd-action-name="side-nav: link: error-tracking" :class="product == 'error-tracking' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Error Tracking';
            product = 'error-tracking';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Error Tracking</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=product-analytics#products" data-dd-action-name="side-nav: link: product-analytics" class=non-fed-product :class="product == 'product-analytics' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Product Analytics';
            product = 'product-analytics';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Product Analytics</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=experiments#products" data-dd-action-name="side-nav: link: experiments" class=non-fed-product :class="product == 'experiments' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Experiments';
            product = 'experiments';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Experiments</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=real-user-monitoring#products" data-dd-action-name="side-nav: link: real-user-monitoring" :class="product == 'real-user-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Real User Monitoring & Session Replay';
            product = 'real-user-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Real User Monitoring & Session Replay</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=synthetic-monitoring#products" data-dd-action-name="side-nav: link: synthetic-monitoring" :class="product == 'synthetic-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Synthetic Testing & Monitoring';
            product = 'synthetic-monitoring';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Synthetic Testing & Monitoring</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-ci d-flex"></i>Software Delivery</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=code-coverage#products" data-dd-action-name="side-nav: link: code-coverage" class=non-fed-product :class="product == 'code-coverage' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Code Coverage';
            product = 'code-coverage';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Code Coverage</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=feature-flags#products" data-dd-action-name="side-nav: link: feature-flags" class=non-fed-product :class="product == 'feature-flags' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Feature Flags';
            product = 'feature-flags';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Feature Flags</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=ci-cd-monitoring#products" data-dd-action-name="side-nav: link: ci-cd-monitoring" class=non-fed-product :class="product == 'ci-cd-monitoring' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'CI Pipeline Visibility';
            product = 'ci-cd-monitoring';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>CI Pipeline Visibility</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=continuous-testing#products" data-dd-action-name="side-nav: link: continuous-testing" class=non-fed-product :class="product == 'continuous-testing' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Continuous Testing';
            product = 'continuous-testing';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Continuous Testing</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=test-optimization#products" data-dd-action-name="side-nav: link: test-optimization" class=non-fed-product :class="product == 'test-optimization' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Test Optimization';
            product = 'test-optimization';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Test Optimization</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li><li class=product-category><span class=product-category-title><i class="icon-events d-flex"></i>Service Management</span><ul class=product-category-list><li class=product><a href="https://www.datadoghq.com/pricing/?product=app-builder#products" data-dd-action-name="side-nav: link: app-builder" class=non-fed-product :class="product == 'app-builder' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'App Builder';
            product = 'app-builder';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>App Builder</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=incident-response#products" data-dd-action-name="side-nav: link: incident-response" :class="product == 'incident-response' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Incident Response';
            product = 'incident-response';
            fedProduct = true;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Incident Response</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=event-management#products" data-dd-action-name="side-nav: link: event-management" class=non-fed-product :class="product == 'event-management' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Event Management';
            product = 'event-management';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Event Management</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li><li class=product><a href="https://www.datadoghq.com/pricing/?product=workflow-automation#products" data-dd-action-name="side-nav: link: workflow-automation" class=non-fed-product :class="product == 'workflow-automation' ? 'active' : ''" @click.prevent="
            open = false;
            displayName = 'Workflow Automation';
            product = 'workflow-automation';
            fedProduct = false;
            removeQueryParam('tab');
            window.location.hash = '#products';
            updateQueryParam('product', `${product}`);
        "><span>Workflow Automation</span>
<span class=tooltip>This product is currently unavailable on the US-FED site.</span></a></li></ul></li></ul></div></div></div><div class="col-lg-9 content-section product-3" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'ai-credits' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=ai-credits><a class=text-black>AI Credits</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Reduce time to incident resolution and help teams move faster with AI built for your stack.</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['AI-CREDITS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['AI-CREDITS'] ? pricing[region]['AI-CREDITS'].annual_cost : ''">500</span><div class=price-helper-wrapper><span class="price-helper small">Per 500 credits,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: AI Credits" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Explore telemetry and take action faster with Bits Chat</p></li><li><p class=m-0>Reduce MTTR with automated investigations from Bits Investigation</p></li><li><p class=m-0>Fix and deploy code autonomously with Bits Code</p></li><li><p class=m-0>Create custom AI agents for your operational workflows with Bits Agent Builder</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span x-text="pricing[region]['AI-CREDITS-OD'] ? parseFloat(pricing[region]['AI-CREDITS-OD'].on_demand_cost).toFixed(2) : '1.30'">1.30</span> per credit on-demand.<br></p><a data-dd-action-name="card: button: start free trial: AI Credits" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-12 style="padding:0 6px"><p class=small>Bits Chat — Search and analyze telemetry, create dashboards and notebooks, and inspect monitors with natural language.</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-12 style="padding:0 6px"><p class=small>Bits Investigation — Automatically investigate alerts, correlate telemetry, identify root causes, summarize impact, and apply remediations.</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-12 style="padding:0 6px"><p class=small>Bits Code — Turn Datadog context into faster fixes with AI-assisted code generation, review, and debugging.</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-12 style="padding:0 6px"><p class=small>Bits Agent Builder — Build custom AI agents that automate high-value workflows like incident response and custom reporting</p></div></div></div></div><p class="fw-semibold small text-start text-uppercase"><span class="d-flex justify-content-between"><span>How Credits are Consumed by Feature</span><span class=text-center style=width:50%>Estimated Credits Per Use</span></span></p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Bits Chat — Message</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">~0.5 credits</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Bits Agent Builder — Manual or Autonomous Run</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">~3 credits</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Bits Code — Code Fix</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">~5 credits</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Bits Investigate — Autonomous Investigation</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">~6.5 credits</p></div></div></div><p class="small mt-2 mb-0"><small style=color:#6c757d>Average credit consumption for each feature set out above is provided only for reference. Actual consumption for any single request may vary with task complexity and the amount of context the model processes.</small></p></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=ai-credits-common-questions><a class=text-black href=#ai-credits-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=ai-credits-what-is-an-ai-credit><a class=text-black href=#ai-credits-what-is-an-ai-credit>What is an AI Credit?</a></dt><dd class=ps-0>An AI credit represents one unit of intelligent work performed by Datadog&rsquo;s AI products listed above.</dd><dt class="border-0 ps-0" id=ai-credits-do-unused-credits-roll-over><a class=text-black href=#ai-credits-do-unused-credits-roll-over>Do unused credits roll over?</a></dt><dd class=ps-0>AI Credits reset on the first day of each calendar month. Unused credits do not roll over to the next month.</dd><dt class="border-0 ps-0" id=ai-credits-what-happens-if-i-run-out-of-ai-credits><a class=text-black href=#ai-credits-what-happens-if-i-run-out-of-ai-credits>What happens if I run out of AI Credits?</a></dt><dd class=ps-0>If your usage exceeds your purchased monthly bundle, additional credits are billed automatically at the On-Demand rate. You do not need to switch pricing models or top up manually.</dd><dt class="border-0 ps-0" id=ai-credits-how-is-ai-credits-billed><a class=text-black href=#ai-credits-how-is-ai-credits-billed>How is AI Credits billed?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly, and on-demand plans</a> are available. Annual and monthly plans are billed per 500 credits. On-demand is billed per individual credit. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-11" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'code-coverage' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=code-coverage><a class=text-black>Code Coverage</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Track, enforce, and improve test coverage across your entire codebase in one platform</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['SD-CODE-COVERAGE'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SD-CODE-COVERAGE'] ? pricing[region]['SD-CODE-COVERAGE'].annual_cost : ''">8</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Code Coverage" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Gain unified visibility into test coverage across every repository</p></li><li><p class=m-0>Enforce consistent testing standards with automated PR quality gates</p></li><li><p class=m-0>Improve test reliability with context-driven insights</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SD-CODE-COVERAGE'] ? pricing[region]['SD-CODE-COVERAGE'].on_demand_cost : ''">12</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Code Coverage" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><p class=mt-0>Customers using <a href="https://www.datadoghq.com/pricing/?product=test-optimization#products">Test Optimization</a> or <a href="https://www.datadoghq.com/pricing/?product=code-security#products">Code Security</a> receive one Code Coverage committer for every billed committer of those products, at no additional cost</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>View test coverage for lines, files, and branches across mono- and multi-repo codebases</p></li><li class="list-item mb-1"><p class=font-18>Surface untested code with line-level annotations</p></li><li class="list-item mb-1"><p class=font-18>Monitor how coverage evolves across commits and branches</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Enforce coverage thresholds to block untested code from merging</p></li><li class="list-item mb-1"><p class=font-18>Surface coverage results directly in pull request comments for faster fixes</p></li><li class="list-item mb-1"><p class=font-18>Use Bits AI Dev Agent to generate targeted test suggestions for uncovered code</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=code-coverage-common-questions><a class=text-black href=#code-coverage-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=code-coverage-how-is-code-coverage-priced><a class=text-black href=#code-coverage-how-is-code-coverage-priced>How is Code Coverage priced?</a></dt><dd class=ps-0>Code Coverage is priced per committer, per month, based on the maximum number of active committers during the billing period.</dd><dt class="border-0 ps-0" id=code-coverage-do-i-need-to-pay-separately-if-i-already-use-test-optimization-or-code-security><a class=text-black href=#code-coverage-do-i-need-to-pay-separately-if-i-already-use-test-optimization-or-code-security>Do I need to pay separately if I already use Test Optimization or Code Security?</a></dt><dd class=ps-0>Eligible committers from Test Optimization and Code Security automatically include Code Coverage allotments. For example, for a team paying for 25 Test Optimization committers, they would get 25 Code Coverage committers at no additional cost.</dd><dt class="border-0 ps-0" id=code-coverage-how-do-you-define-a-committer><a class=text-black href=#code-coverage-how-do-you-define-a-committer>How do you define a committer?</a></dt><dd class=ps-0>A committer means an active Git committer; they are identified through their Git author email address. A committer is counted towards billing if they commit at least 3 times in a given month.</dd><dt class="border-0 ps-0" id=code-coverage-what-ci-providers-does-code-coverage-support><a class=text-black href=#code-coverage-what-ci-providers-does-code-coverage-support>What CI providers does Code Coverage support?</a></dt><dd class=ps-0>Code Coverage is compatible with GitHub, GitLab, Azure DevOps.</dd><dt class="border-0 ps-0" id=code-coverage-what-languages-does-code-coverage-support-for-tests><a class=text-black href=#code-coverage-what-languages-does-code-coverage-support-for-tests>What languages does Code Coverage support for tests?</a></dt><dd class=ps-0>Code Coverage is language agnostic. <a href="https://docs.datadoghq.com/code_coverage/setup/?tab=github#supported-coverage-report-formats">Learn more</a> about supported report formats.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-12" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'standard',
                                    
                                        'flex-starter',
                                    
                                        'flex',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'log-management' ? 'active' : ''"><div class=multi-plan data-plan-count=7><h2 class=text-md-center id=log-management><a class=text-black>Log Management</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Analyze and explore log data in context with flexible retention</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Standard" @click.prevent="
                                                        updateQueryParam('tab', 'standard')
                                                        selected_category = 'STANDARD'; 
                                                        planOpen = false;
                                                    " :class="'STANDARD' == selected_category ? 'active' : ''">Standard
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Flex Starter" @click.prevent="
                                                        updateQueryParam('tab', 'flex-starter')
                                                        selected_category = 'FLEX STARTER'; 
                                                        planOpen = false;
                                                    " :class="'FLEX STARTER' == selected_category ? 'active' : ''">Flex Starter
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Flex" @click.prevent="
                                                        updateQueryParam('tab', 'flex')
                                                        selected_category = 'FLEX'; 
                                                        planOpen = false;
                                                    " :class="'FLEX' == selected_category ? 'active' : ''">Flex</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['STANDARD','FLEX STARTER',].includes(selected_category) && pricing[region]['LOG-INGEST'] && product === 'log-management'
            ? 'd-flex group'
            : ['STANDARD','FLEX STARTER',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Ingest>Ingest</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LOG-INGEST'] ? pricing[region]['LOG-INGEST'].annual_cost : ''">0.10</span><div class=price-helper-wrapper><span class="price-helper small">Per ingested or scanned GB,<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Ingest, process, enrich, live tail, and archive all your logs</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box parsing for 200+ log sources</p></li><li><p class="small fw-semibold">Enrich and tag your logs for RBAC, cost control and usage allocation</p></li><li><p class="small fw-semibold">Generate log-based metrics for long term analysis</p></li><li><p class="small fw-semibold">Self-hosted archives, with the option to ad-hoc rehydrate back to Datadog</p></li><li><p class="small fw-semibold">Dynamic routing to desired retention tier options</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Per GB of uncompressed data ingested for processing, or compressed data scanned for rehydrating.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['LOG-INGEST'] ? pricing[region]['LOG-INGEST'].on_demand_cost : ''">0.10</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Ingest" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{
             open: false,
             custom: false,
             retention: '15-day retention',
             selected_retention_pricing_data_key: '',
             dropdownStyle: {},
             positionDropdown() {
                 const button = this.$refs.dropdownButton;
                 const buttonRect = button.getBoundingClientRect();
                 const parentRect = this.$el.getBoundingClientRect();

                 this.dropdownStyle = {
                     position: 'absolute',
                     top: `${buttonRect.bottom - parentRect.top}px`,
                     left: `${buttonRect.left - parentRect.left}px`
                 };
             }
         }" x-init="selected_retention_pricing_data_key = 'LOGS-15DAY'" x-effect="if (open) positionDropdown()" :class="['STANDARD',].includes(selected_category) && (pricing[region][selected_retention_pricing_data_key] || custom) && product === 'log-management'
            ? 'd-flex' 
            : ['STANDARD',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Standard Indexing">Standard Indexing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><a class="small fw-semibold text-uppercase align-self-center d-block" role=button type=button :aria-expanded=open @click="open = !open" aria-label="Pricing options" aria-haspopup=true x-ref=dropdownButton :data-dd-action-name="open ? 'card: dropdown: close' : 'card: dropdown: open'"><span class=text-content x-text=retention>15-day retention</span>
<i class=icon-down-carrot-normal style=font-size:12px></i></a><div class=span-dropdown aria-label="Pricing options" :aria-expanded=open x-show=open @click.outside="open = false" x-ref=dropdownMenu x-bind:style=dropdownStyle><a class=dropdown-item href=# @click.prevent="retention = '3-day retention'; selected_retention_pricing_data_key = 'LOGS-3DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 3-day retention">3-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '7-day retention'; selected_retention_pricing_data_key = 'LOGS-7DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 7-day retention">7-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '15-day retention'; selected_retention_pricing_data_key = 'LOGS-15DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 15-day retention">15-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '30-day retention'; selected_retention_pricing_data_key = 'LOGS-30DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 30-day retention">30-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = 'Greater than 30 days'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Greater than 30 days">Greater than 30 days</a></div><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].annual_cost : ''">1.70</span><div class=price-helper-wrapper><span class="price-helper small">Per million log events,<br>per month*</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: Standard Indexing">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>For real-time exploration, alerting, and dashboards with mission-critical logs</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Prioritize logs for critical investigations</p></li><li><p class="small fw-semibold">Build log alerts with Log Monitors</p></li><li><p class="small fw-semibold">Detect log anomalies proactively with Watchdog Insights</p></li><li><p class="small fw-semibold">Best suited for frequently accessed logs i.e. infrastructure, application, operational logs</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].on_demand_cost : ''">2.55</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Standard Indexing" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a>
<a data-dd-action-name="card: button: lets talk: Standard Indexing" class="btn cta-btn text-white w-100 js-modal-demo custom-pricing-cta cursor-pointer my-2" x-show=custom>Let's Talk</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="['FLEX',].includes(selected_category) && pricing[region]['LOG-INGEST'] && product === 'log-management'
            ? 'd-flex group'
            : ['FLEX',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Ingest>Ingest</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LOG-INGEST'] ? pricing[region]['LOG-INGEST'].annual_cost : ''">0.10</span><div class=price-helper-wrapper><span class="price-helper small">Per ingested or scanned GB,<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Ingest, process, enrich, live tail, and archive all your logs</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box parsing for 200+ log sources</p></li><li><p class="small fw-semibold">Enrich and tag your logs for RBAC, cost control and usage allocation</p></li><li><p class="small fw-semibold">Generate log-based metrics for long term analysis</p></li><li><p class="small fw-semibold">Self-hosted archives, with the option to ad-hoc rehydrate back to Datadog</p></li><li><p class="small fw-semibold">Dynamic routing to desired retention tier options</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Per GB of uncompressed data ingested for processing, or compressed data scanned for rehydrating.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['LOG-INGEST'] ? pricing[region]['LOG-INGEST'].on_demand_cost : ''">0.10</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Ingest" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="['FLEX',].includes(selected_category) && pricing[region]['FLEX-STORED-LOGS'] && product === 'log-management'
            ? 'd-flex group'
            : ['FLEX',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Flex Storage">Flex Storage</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['FLEX-STORED-LOGS'] ? pricing[region]['FLEX-STORED-LOGS'].annual_cost : ''">0.05</span><div class=price-helper-wrapper><span class="price-helper small">Per million events stored,<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>For historical investigations or security, audit, and compliance use cases</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Flexible long-term retention up to 15 months without the need to rehydrate</p></li><li><p class="small fw-semibold">Increased ROI on high-volume logs</p></li><li><p class="small fw-semibold">Correlate with metrics and traces for deeper analysis</p></li><li><p class="small fw-semibold">Best suited for infrequently accessed logs</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Minimum retention of 1 month up to 15 months<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['FLEX-STORED-LOGS'] ? pricing[region]['FLEX-STORED-LOGS'].on_demand_cost : ''">0.075</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Flex Storage" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{
             open: false,
             custom: true,
             retention: 'Extra Small',
             selected_retention_pricing_data_key: '',
             dropdownStyle: {},
             positionDropdown() {
                 const button = this.$refs.dropdownButton;
                 const buttonRect = button.getBoundingClientRect();
                 const parentRect = this.$el.getBoundingClientRect();

                 this.dropdownStyle = {
                     position: 'absolute',
                     top: `${buttonRect.bottom - parentRect.top}px`,
                     left: `${buttonRect.left - parentRect.left}px`
                 };
             }
         }" x-init="selected_retention_pricing_data_key = ''" x-effect="if (open) positionDropdown()" :class="['FLEX',].includes(selected_category) && (pricing[region][selected_retention_pricing_data_key] || custom) && product === 'log-management'
            ? 'd-flex' 
            : ['FLEX',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Flex Compute">Flex Compute</p><hr class="mb-1 mb-md-2 w-100 border-gray"><a class="small fw-semibold text-uppercase align-self-center d-block" role=button type=button :aria-expanded=open @click="open = !open" aria-label="Pricing options" aria-haspopup=true x-ref=dropdownButton :data-dd-action-name="open ? 'card: dropdown: close' : 'card: dropdown: open'"><span class=text-content x-text=retention>Extra Small</span>
<i class=icon-down-carrot-normal style=font-size:12px></i></a><div class=span-dropdown aria-label="Pricing options" :aria-expanded=open x-show=open @click.outside="open = false" x-ref=dropdownMenu x-bind:style=dropdownStyle><a class=dropdown-item href=# @click.prevent="retention = 'Extra Small'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Extra Small">Extra Small</a>
<a class=dropdown-item href=# @click.prevent="retention = 'Small'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Small">Small</a>
<a class=dropdown-item href=# @click.prevent="retention = 'Medium'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Medium">Medium</a>
<a class=dropdown-item href=# @click.prevent="retention = 'Large'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Large">Large</a></div><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].annual_cost : ''">0.05</span><div class=price-helper-wrapper><span class="price-helper small">Per instance-hour,<br>per month*</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: Flex Compute">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Multiple preconfigured compute options to suit your search and analytics workloads</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Easily search for logs stored in both Standard and Flex Tier</p></li><li><p class="small fw-semibold">Datadog-managed compute infrastructure</p></li><li><p class="small fw-semibold">Scale up or down based on your query use cases</p></li><li><p class="small fw-semibold">Customize compute choices based on business priority and environment i.e. staging, production</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''"></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Flex Compute" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a>
<a data-dd-action-name="card: button: lets talk: Flex Compute" class="btn cta-btn text-white w-100 js-modal-demo custom-pricing-cta cursor-pointer my-2" x-show=custom>Let's Talk</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['FLEX STARTER',].includes(selected_category) && pricing[region]['FLEX-LOGS-STARTER'] && product === 'log-management'
            ? 'd-flex group'
            : ['FLEX STARTER',].includes(selected_category) && product === 'log-management'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Flex Logs Starter">Flex Logs Starter</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['FLEX-LOGS-STARTER'] ? pricing[region]['FLEX-LOGS-STARTER'].annual_cost : ''">0.60</span><div class=price-helper-wrapper><span class="price-helper small">Per million events stored,<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>For historical investigations and long-term retention</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Retention options of 3 months, 6 months, 12 months, and 15 months</p></li><li><p class="small fw-semibold">Bundled Starter Compute for log volumes below 2B per month (10B total stored)</p></li><li><p class="small fw-semibold">Easily search for logs stored in both Standard and Flex Tier without the need to rehydrate</p></li><li><p class="small fw-semibold">Best suited for infrequently accessed logs that need to be retained for longer periods</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Minimum retention of 3 months, options for 6, 12, and 15 months<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['FLEX-LOGS-STARTER'] ? pricing[region]['FLEX-LOGS-STARTER'].on_demand_cost : ''">0.90</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Flex Logs Starter" href=# class="js-cta-PricingCTA pricing-bg-color-6 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><hr class="mb-6 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available&nbsp;(3B+ events/mo)</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small mb-4" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['LOG-FW'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Log Forwarding to Custom Destinations">Log Forwarding to Custom Destinations</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LOG-FW'] ? pricing[region]['LOG-FW'].annual_cost : ''">0.25</span><div class=price-helper-wrapper><span class="price-helper small">Per GB outbound,<br>per destination, per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Centralize your log processing, enrichment and routing to multiple destinations</p><ul class="dashed mb-1 align-self-center text-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Forward your logs in real-time to any destination in just a few clicks</p></li><li><p class="small fw-semibold">Collect, transform, and route logs to multiple destinations without the need to index</p></li><li><p class="small fw-semibold">Low-latency, cloud scale throughput</p></li><li><p class="small fw-semibold">RBAC-enabled</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Per GB of uncompressed data forwarded per destination<br></p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Log Forwarding to Custom Destinations" href=# class="js-cta-PricingCTA pricing-bg-color-7 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Unlimited Sources</p></li><li class="list-item mb-1"><p class=font-18>Faceted & Full-text Search</p></li><li class="list-item mb-1"><p class=font-18>1,000+ vendor-backed integrations</p></li><li class="list-item mb-1"><p class=font-18>Custom Processing & Parsers</p></li><li class="list-item mb-1"><p class=font-18>Log Analytics and Dashboarding</p></li><li class="list-item mb-1"><p class=font-18>Log Anomaly Detection</p></li><li class="list-item mb-1"><p class=font-18>Supports PCI and HIPAA compliance</p></li><li class="list-item mb-1"><p class=font-18>Fully integrated with Datadog role-based access control (RBAC)</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Enterprise-Grade Security</p></li><li class="list-item mb-1"><p class=font-18>Unlimited User Accounts</p></li><li class="list-item mb-1"><p class=font-18>Real-time Alerting</p></li><li class="list-item mb-1"><p class=font-18>Logging without Limits™</p></li><li class="list-item mb-1"><p class=font-18>Log-based custom metrics</p></li><li class="list-item mb-1"><p class=font-18>Archive to AWS S3, Azure Blob Storage,<br>and Google Cloud Storage</p></li><li class="list-item mb-1"><p class=font-18>Log Rehydration™ from AWS S3, Azure Blob Storage, and Google Cloud Storage</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Automated Infrastructure Tags</p></li><li class=mb-1><p class=font-18>Pivot seamlessly to Infrastructure and APM</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=log-management-common-questions><a class=text-black href=#log-management-common-questions>Common Questions</a></h3><div id=definitions class=faq-category><hr class="border-black mt-0 mb-2"><a class="faq-category-header font-eyebrow fw-bolder text-uppercase text-black flex mb-2" href=#definitions>Definitions</a><dt class="border-0 ps-0" id=log-management-how-do-you-define-retention><a class=text-black href=#log-management-how-do-you-define-retention>How do you define retention?</a></dt><dd class="ps-0 faq-category-answer"><p>The retention period is the number of days your logs are searchable and analyzable. After this period, logs disappear from your index(es).</p><p>Logs removed from your index(es) do not have to be gone forever! Check out our <a href=https://docs.datadoghq.com/logs/s3/>Log Archives</a> for long-term storage options.</p></dd><dt class="border-0 ps-0" id=log-management-i-know-my-consumption-in-gbday-how-do-i-convert-it-into-millions-of-log-events><a class=text-black href=#log-management-i-know-my-consumption-in-gbday-how-do-i-convert-it-into-millions-of-log-events>I know my consumption in GB/day: how do I convert it into millions of log events?</a></dt><dd class="ps-0 faq-category-answer"><p>Log events come in all shapes and sizes, which is precisely why we offer event-based pricing! We want to encourage rich logs to provide the most value.</p><p>The best way to get the number of log events during your Datadog trial is to run a count query over the last 24 hours and multiply by 30 days to estimate for the month. This can, of course, also be done in your current log management solution, if you have one.</p></dd><dt class="border-0 ps-0" id=log-management-what-do-the-different-compute-sizes-in-flex-logs-mean-which-one-is-appropriate-for-me><a class=text-black href=#log-management-what-do-the-different-compute-sizes-in-flex-logs-mean-which-one-is-appropriate-for-me>What do the different compute sizes in Flex Logs mean? Which one is appropriate for me?</a></dt><dd class="ps-0 faq-category-answer">Compute is the querying capacity to run queries for Flex Logs. The compute size appropriate for you depends on the volume of data stored in the Flex Tier, the time window and complexity of your queries, and concurrency. For guidance on which compute size you should choose, see our <a href=https://docs.datadoghq.com/logs/log_configuration/flex_logs/#compute-sizes>documentation</a>.</dd></div><div id=supported-today class=faq-category><hr class="border-black mt-0 mb-2"><a class="faq-category-header font-eyebrow fw-bolder text-uppercase text-black flex mb-2" href=#supported-today>Supported Today</a><dt class="border-0 ps-0" id=log-management-can-i-subscribe-to-log-management-without-using-datadog-infrastructure-or-apm><a class=text-black href=#log-management-can-i-subscribe-to-log-management-without-using-datadog-infrastructure-or-apm>Can I subscribe to Log Management without using Datadog Infrastructure or APM?</a></dt><dd class="ps-0 faq-category-answer">Having all your infrastructure, APM, and log data under one roof is something we definitely encourage, but you can also subscribe only to Datadog’s Log Management. Learn how to configure only log collection <a href=https://docs.datadoghq.com/logs/guide/how-to-set-up-only-logs/>here</a>.</dd><dt class="border-0 ps-0" id=log-management-what-retentions-are-available-for-on-demand-customers><a class=text-black href=#log-management-what-retentions-are-available-for-on-demand-customers>What retentions are available for on-demand customers?</a></dt><dd class="ps-0 faq-category-answer">For on-demand customers, the default retention is 15 days. If you have already created a Datadog account and would like to use a different retention, you can request a different retention at <a href=mailto:support@datadoghq.com>support@datadoghq.com</a></dd><dt class="border-0 ps-0" id=log-management-do-i-have-to-choose-only-one-type-of-retention-between-standard-indexing-and-flex-logs><a class=text-black href=#log-management-do-i-have-to-choose-only-one-type-of-retention-between-standard-indexing-and-flex-logs>Do I have to choose only one type of retention between Standard Indexing and Flex Logs?</a></dt><dd class="ps-0 faq-category-answer">Your indexes can have Standard Tier retention only, Flex Tier retention only, or a combination of Standard and Flex Tier.</dd><dt class="border-0 ps-0" id=log-management-what-is-the-difference-between-standard-indexing-and-flex-logs><a class=text-black href=#log-management-what-is-the-difference-between-standard-indexing-and-flex-logs>What is the difference between Standard Indexing and Flex Logs?</a></dt><dd class="ps-0 faq-category-answer">Flex Logs does not support monitors or Watchdog Insights. Standard Indexing supports everything.</dd><dt class="border-0 ps-0" id=log-management-what-happens-if-i-send-an-unexpectedly-high-volume-of-logs><a class=text-black href=#log-management-what-happens-if-i-send-an-unexpectedly-high-volume-of-logs>What happens if I send an unexpectedly high volume of logs?</a></dt><dd class="ps-0 faq-category-answer"><p>By committing to a monthly volume of logs, you aren’t rate-limited based on a single day&rsquo;s volume. Send as much as you need on any given day without losing visibility. Assuming your average is lower on other days, your bill is unaffected.</p><p>In those cases where you have a big month, not to worry! You maintain complete visibility and pay for additional services (+50% of the annual price) only on the volume that exceeds your commitment.</p></dd><dt class="border-0 ps-0" id=log-management-can-i-forward-logs-from-one-datadog-account-to-another><a class=text-black href=#log-management-can-i-forward-logs-from-one-datadog-account-to-another>Can I forward logs from one Datadog account to another?</a></dt><dd class="ps-0 faq-category-answer">This is currently not supported.</dd></div><div id=best-practices class=faq-category><hr class="border-black mt-0 mb-2"><a class="faq-category-header font-eyebrow fw-bolder text-uppercase text-black flex mb-2" href=#best-practices>Best Practices</a><dt class="border-0 ps-0" id=log-management-how-can-i-manage-my-highly-dynamic-log-volume-in-a-cost-effective-way-without-losing-visibility><a class=text-black href=#log-management-how-can-i-manage-my-highly-dynamic-log-volume-in-a-cost-effective-way-without-losing-visibility>How can I manage my highly dynamic log volume in a cost-effective way without losing visibility?</a></dt><dd class="ps-0 faq-category-answer">We’ve designed our Log Management offer knowing from day 1 that managing large and fluctuating log volumes is a common problem. We have various innovative solutions for this, which you can learn more about from our dedicated article <a href=https://docs.datadoghq.com/logs/dynamic_volume_control/>here</a>.</dd><dt class="border-0 ps-0" id=log-management-when-should-i-store-logs-in-standard-indexing-vs-flex-logs><a class=text-black href=#log-management-when-should-i-store-logs-in-standard-indexing-vs-flex-logs>When should I store logs in Standard Indexing vs Flex Logs?</a></dt><dd class="ps-0 faq-category-answer">Log events can be stored in Standard Indexing when you need them for real-time troubleshooting and in Flex Logs for ad-hoc, historical analysis and long term troubleshooting. See our <a href=https://docs.datadoghq.com/logs/log_configuration/flex_logs/>documentation</a> to learn more.</dd></div><div id=billing class=faq-category><hr class="border-black mt-0 mb-2"><a class="faq-category-header font-eyebrow fw-bolder text-uppercase text-black flex mb-2" href=#billing>Billing</a><dt class="border-0 ps-0" id=log-management-how-are-flex-logs-billed><a class=text-black href=#log-management-how-are-flex-logs-billed>How are Flex Logs billed?</a></dt><dd class="ps-0 faq-category-answer">Flex Logs are metered on an hourly basis per million events stored. Each million events stored is billed for a minimum of 30 days, or a minimum of $<span x-text="pricing[region]['FLEX-STORED-LOGS'].annual_cost">0.05</span>. For example, if one million logs are retained for 60 days, this will be charged for every 30 days that they are stored.</dd><dt class="border-0 ps-0" id=log-management-is-forwarding-to-s3-archives-gcp-storage-and-azure-storage-being-billed><a class=text-black href=#log-management-is-forwarding-to-s3-archives-gcp-storage-and-azure-storage-being-billed>Is forwarding to S3 Archives, GCP Storage, and Azure Storage being billed?</a></dt><dd class="ps-0 faq-category-answer">No. Forwarding to S3 Archives, GCP Storage, and Azure Storage is included with $<span x-text="pricing[region]['LOG-INGEST'].annual_cost">0.10</span> per ingested GB. <span x-show=!fedRegionSelected>However, forwarding to other destinations such as your external SIEM or BI vendor is billable starting at $<span x-text="pricing[region]['LOG-FW'] ? pricing[region]['LOG-FW'].annual_cost : ''">0.25</span> per GB outbound per destination.</span></dd><dt class="border-0 ps-0" id=log-management-how-is-rehydration-billed><a class=text-black href=#log-management-how-is-rehydration-billed>How is Rehydration billed?</a></dt><dd class="ps-0 faq-category-answer">When you <a href=https://docs.datadoghq.com/logs/archives/rehydrating/>rehydrate</a> logs, Datadog scans the compressed logs in your archive for the time period you requested, and then indexes only log events that match your rehydration query. Datadog charges $<span x-text="pricing[region]['LOG-INGEST'].annual_cost">0.10</span> per compressed GB of log data that is scanned. For any log events indexed from a rehydration, the cost is equal to your contracted indexing rates for the retention period selected for the rehydration.</dd><dt class="border-0 ps-0" id=log-management-how-are-log-based-metrics-billed><a class=text-black href=#log-management-how-are-log-based-metrics-billed>How are log-based metrics billed?</a></dt><dd class="ps-0 faq-category-answer">Log-based metrics count towards your Custom Metrics allocation <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-many-custom-metrics-are-a-hrefpricingallotmentsallotteda-per-host">as outlined in your infrastructure plan</a>.</dd><dt class="border-0 ps-0" id=log-management-are-there-other-billing-options><a class=text-black href=#log-management-are-there-other-billing-options>Are there other billing options?</a></dt><dd class="ps-0 faq-category-answer">Annual and monthly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd></div><div id=security-and-compliance class="faq-category faq-category-last"><hr class="border-black mt-0 mb-2"><a class="faq-category-header font-eyebrow fw-bolder text-uppercase text-black flex mb-2" href=#security-and-compliance>Security and Compliance</a><dt class="border-0 ps-0" id=log-management-how-can-i-be-sure-my-data-is-secure><a class=text-black href=#log-management-how-can-i-be-sure-my-data-is-secure>How can I be sure my data is secure?</a></dt><dd class="ps-0 faq-category-answer"><a href=https://www.datadoghq.com/security/>Security</a> is our top priority. This includes, TCP/SSL Strict Transport Security, agent-level scrubbing and SOC 2 compliance. Our Agent is open-source, which means it can be reviewed to ensure it meets your security requirements.</dd></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-15" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'feature-flags' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=feature-flags><a class=text-black>Feature Flags</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Detect root causes and control releases at scale by connecting every feature flag to real-time telemetry.</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{
             open: false,
             custom: false,
             retention: '1M-10M MFCRs',
             selected_retention_pricing_data_key: '',
             dropdownStyle: {},
             positionDropdown() {
                 const button = this.$refs.dropdownButton;
                 const buttonRect = button.getBoundingClientRect();
                 const parentRect = this.$el.getBoundingClientRect();

                 this.dropdownStyle = {
                     position: 'absolute',
                     top: `${buttonRect.bottom - parentRect.top}px`,
                     left: `${buttonRect.left - parentRect.left}px`
                 };
             }
         }" x-init="selected_retention_pricing_data_key = 'FEATURE-FLAGS'" x-effect="if (open) positionDropdown()" :class="pricing[region][selected_retention_pricing_data_key] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><a class="small fw-semibold text-uppercase align-self-center d-block" role=button type=button :aria-expanded=open @click="open = !open" aria-label="Pricing options" aria-haspopup=true x-ref=dropdownButton :data-dd-action-name="open ? 'card: dropdown: close' : 'card: dropdown: open'"><span class=text-content x-text=retention>1M-10M MFCRs</span>
<i class=icon-down-carrot-normal style=font-size:12px></i></a><div class=span-dropdown aria-label="Pricing options" :aria-expanded=open x-show=open @click.outside="open = false" x-ref=dropdownMenu x-bind:style=dropdownStyle><a class=dropdown-item href=# @click.prevent="retention = '1M-10M MFCRs'; selected_retention_pricing_data_key = 'FEATURE-FLAGS'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 1M-10M MFCRs">1M-10M MFCRs</a>
<a class=dropdown-item href=# @click.prevent="retention = '10M+ MFCRs'; selected_retention_pricing_data_key = 'FEATURE-FLAGS-10M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 10M+ MFCRs">10M+ MFCRs</a></div><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].annual_cost : ''">55</span><div class=price-helper-wrapper><span class="price-helper small">per month* **</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: Feature Flags">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Feature Flags" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Decouple deployment from release to safely control when and how changes reach users</p></li><li><p class=m-0>Target specific user and service cohorts to control exposure by environment or traffic segment</p></li><li><p class=m-0>Automate risk mitigation with telemetry-driven canary rollouts with automatic rollbacks</p></li><li><p class=m-0>Gain instant visibility into release impact by correlating feature flags with service health</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Pricing is based on usage per 1 million Monthly Flag Configuration Requests (MFCRs). Usage below 1 million monthly flag configuration requests is included at no cost.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].on_demand_cost : ''">100</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Feature Flags" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Progressive and canary rollouts powered by Datadog APM, RUM, and Product Analytics</p></li><li class="list-item mb-1"><p class=font-18>Automated rollbacks and circuit breakers triggered by real-time observability metrics</p></li><li class="list-item mb-1"><p class=font-18>End-to-end visibility into feature impact, with flag context embedded directly in traces and user sessions</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Precise targeting and dynamic configuration across users, services, and environments</p></li><li class="list-item mb-1"><p class=font-18>Built-in governance and lifecycle management, including automated detection and cleanup of stale flags</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=feature-flags-common-questions><a class=text-black href=#feature-flags-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=feature-flags-what-is-a-feature-flag><a class=text-black href=#feature-flags-what-is-a-feature-flag>What is a feature flag?</a></dt><dd class=ps-0>A feature flag lets you enable, disable, or configure application behavior without redeploying code. Teams use feature flags to safely release features, run canary rollouts, and validate changes using real production traffic.</dd><dt class="border-0 ps-0" id=feature-flags-how-is-datadog-feature-flags-billed><a class=text-black href=#feature-flags-how-is-datadog-feature-flags-billed>How is Datadog Feature Flags billed?</a></dt><dd class=ps-0><p>Feature Flags pricing is based on your monthly volume of flag configuration requests. Usage below 1 million monthly flag configuration requests is included at no cost. For usage above 1 million requests, pricing is billed per additional 1 million monthly flag configuration requests based on your selected billing model:</p><table><tbody><tr><th>Monthly Flag Configuration Requests (MFCRs)</th><th class=text-center>Annual<br>cost per 1M MFCRs</th><th class=text-center>Monthly<br>cost per 1M MFCRs</th><th class=text-center>On-Demand<br>cost per 1M MFCRs</th></tr><tr><th>< 1M</th><td class=text-center>Free</td><td class=text-center>Free</td><td class=text-center>Free</td></tr><tr><th>1M - 10M</th><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS'].annual_cost">55</span></td><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS'].month_to_month_cost">89</span></td><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS'].on_demand_cost">100</span></td></tr><tr><th>10M+</th><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS-10M'].annual_cost">45</span></td><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS-10M'].month_to_month_cost">73</span></td><td class=text-center>$<span x-text="pricing[region]['FEATURE-FLAGS-10M'].on_demand_cost">92</span></td></tr></tbody></table></dd><dt class="border-0 ps-0" id=feature-flags-do-feature-flags-require-apm><a class=text-black href=#feature-flags-do-feature-flags-require-apm>Do Feature Flags require APM?</a></dt><dd class=ps-0>Feature Flags can be used independently and don’t require licensing other Datadog products, but they leverage the APM and RUM SDKs for server-side and client-side implementations.</dd><dt class="border-0 ps-0" id=feature-flags-can-i-investigate-feature-flag-impact-in-apm-rum-and-product-analytics><a class=text-black href=#feature-flags-can-i-investigate-feature-flag-impact-in-apm-rum-and-product-analytics>Can I investigate feature flag impact in APM, RUM, and Product Analytics?</a></dt><dd class=ps-0>Yes, but you must already be a customer of the relevant Datadog products. Feature flag evaluations are automatically correlated with Datadog APM, RUM, and Product Analytics data, allowing you to investigate errors, performance issues, and user behavior tied to specific flag states.</dd><dt class="border-0 ps-0" id=feature-flags-can-i-migrate-from-another-feature-flag-provider><a class=text-black href=#feature-flags-can-i-migrate-from-another-feature-flag-provider>Can I migrate from another feature flag provider?</a></dt><dd class=ps-0>Yes. Datadog Feature Flags is built on the OpenFeature standard, which helps teams avoid vendor lock-in and simplifies migrations from existing providers. OpenFeature is a CNCF (Cloud Native Computing Foundation) project backed by major industry leaders, ensuring long-term portability and ecosystem support.</dd><dt class="border-0 ps-0" id=feature-flags-how-reliable-are-datadog-feature-flags><a class=text-black href=#feature-flags-how-reliable-are-datadog-feature-flags>How reliable are Datadog Feature Flags?</a></dt><dd class=ps-0>Feature flag evaluations are designed to be highly reliable and safe by default. Datadog uses a globally distributed CDN-backed architecture to ensure low-latency access and resilience at scale. SDKs cache flag values locally and fall back to safe defaults if connectivity is interrupted, ensuring your application continues to operate even during network or service disruptions.</dd><dt class="border-0 ps-0" id=feature-flags-which-sdk-languages-are-supported><a class=text-black href=#feature-flags-which-sdk-languages-are-supported>Which SDK languages are supported?</a></dt><dd class=ps-0>Datadog Feature Flags supports SDKs for common backend and frontend languages, including Java, JavaScript, Python, React, Go, Ruby, and mobile platforms. <a href=https://docs.datadoghq.com/feature_flags/ target=_blank>Learn more</a>.</dd><dt class="border-0 ps-0" id=feature-flags-is-this-available-in-all-regions><a class=text-black href=#feature-flags-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes. Feature Flags is available in all US-,  EU- and APAC-hosted accounts. Feature Flags are not available in GovCloud.</dd><dt class="border-0 ps-0" id=feature-flags-how-can-i-start-using-feature-flags><a class=text-black href=#feature-flags-how-can-i-start-using-feature-flags>How can I start using Feature Flags?</a></dt><dd class=ps-0>Visit the <a href=https://docs.datadoghq.com/feature_flags/ target=_blank>Feature Flags documentation</a> to get started with instrumenting and managing feature flags in your applications.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-19" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'infrastructure-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=6><h2 class=text-md-center id=infrastructure><a class=text-black>Infrastructure</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">See inside any stack, any app, at any scale, anywhere</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['infrastructure'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Free>Free</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['infrastructure'] ? pricing[region]['infrastructure'].annual_cost : ''">0</span><div class=price-helper-wrapper><span class="price-helper small"></span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Core collection and visualization features</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">1-day metric retention</p></li><li><p class="small fw-semibold">Up to 5 hosts</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''"></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Free" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['HOSTS-PRO'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Pro>Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-PRO'] ? pricing[region]['HOSTS-PRO'].annual_cost : ''">15</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralize your monitoring of systems, services, and serverless functions</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">1,000+ integrations</p></li><li><p class="small fw-semibold">Out-of-the-box dashboards</p></li><li><p class="small fw-semibold">15-month metric retention</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOSTS-PRO'] ? pricing[region]['HOSTS-PRO'].on_demand_cost : ''">18</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Pro" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['HOSTS-ENTERP'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Enterprise>Enterprise</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-ENTERP'] ? pricing[region]['HOSTS-ENTERP'].annual_cost : ''">23</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Advanced features and administrative controls</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Machine learning-based alerts</p></li><li><p class="small fw-semibold">Live Processes</p></li><li><p class="small fw-semibold">Governance Console</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOSTS-ENTERP'] ? pricing[region]['HOSTS-ENTERP'].on_demand_cost : ''">27</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Enterprise" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4
mb-0" x-data="{custom: false}"><div class="plan-inner pricing-border-primary
d-none
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name></p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><div class=price-helper-wrapper><span class="price-helper small"></span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p></p><ul class="dashed mb-1 align-self-center" style=line-height:1></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region][''] ? pricing[region][''].on_demand_cost : ''">27</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['HOST-DEVSECOPS-PRO'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="DevSecOps Pro">DevSecOps Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOST-DEVSECOPS-PRO'] ? pricing[region]['HOST-DEVSECOPS-PRO'].annual_cost : ''">22</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure your cloud resources and adhere to industry standards</p><p class="small fw-semibold">Includes all features in Infrastructure Pro and Cloud Security Management (CSM) Pro</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Cloud Security Posture Management (CSPM)</p></li><li><p class="small fw-semibold">Kubernetes Security Posture Management (KSPM)</p></li><li><p class="small fw-semibold">Built-in mapping of your resources to compliance frameworks to help with audits</p></li><li x-show=!fedRegionSelected><p class="small fw-semibold">Vulnerability Management (VM) for Containers & Hosts</p></li><li><p class="small fw-semibold">Cloud Infrastructure Entitlement Management (CIEM)</p></li><li><p class="small fw-semibold">Comprehensive inventory of cloud resources & linked risks</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOST-DEVSECOPS-PRO'] ? pricing[region]['HOST-DEVSECOPS-PRO'].on_demand_cost : ''">27</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: DevSecOps Pro" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['HOST-DEVSECOPS-ENT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="DevSecOps Enterprise">DevSecOps Enterprise</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOST-DEVSECOPS-ENT'] ? pricing[region]['HOST-DEVSECOPS-ENT'].annual_cost : ''">34</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Advanced risk and threat detection capabilities</p><p class="small fw-semibold">Includes all features in Infrastructure Enterprise and Cloud Security Management (CSM) Enterprise</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">File integrity monitoring</p></li><li><p class="small fw-semibold">Workload Protection for Linux, Windows Kubernetes, and Docker</p></li><li><p class="small fw-semibold">Increased container allotment (10 containers <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host license**)</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOST-DEVSECOPS-ENT'] ? pricing[region]['HOST-DEVSECOPS-ENT'].on_demand_cost : ''">41</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: DevSecOps Enterprise" href=# class="js-cta-PricingCTA pricing-bg-color-6 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available&nbsp;(500+ hosts/mo)</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Free</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Pro</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Enterprise</h4></div><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Standard Events and Metrics</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Up to 5 hosts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Out-of-the-Box Dashboards</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>1,000+ Integrations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Host and Container Maps</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Enterprise-Grade Security</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Unlimited User Accounts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Full-Resolution Data Retention</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">1 day</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">15 months</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">15 months Customizable</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Alerts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Unlimited</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Unlimited</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small><a href=https://www.datadoghq.com/pricing/allotments/>Container Monitoring</a></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 per host allotted</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">10 per host allotted</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small><a href=https://www.datadoghq.com/pricing/allotments/>Custom Metrics</a></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">100 per host allotted</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">200 per host allotted</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small><a href=https://www.datadoghq.com/pricing/allotments/>Custom Events</a></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">500 per host allotted</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">1000 per host allotted</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Single Sign-On with SAML</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Outlier Detection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Watchdog: Automated insights</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Correlations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Anomaly Detection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Forecast Monitoring</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Live Processes</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><p class="fw-semibold small text-start text-uppercase">Advanced Administrative Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>SCIM</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Multiple SAML Providers</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>IP Allowlist</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Email Domain Allowlist</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Governance Console</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Data Access Control</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">10 datasets</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">100 datasets</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Cross-Org Visibility</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 connections</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">100 connections</p></div></div></div></div><p class="fw-semibold small text-start text-uppercase">DevSecOps</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Infrastructure Monitoring</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">All features in Infrastructure Pro</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">All features in Infrastructure Enterprise</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cloud Security Posture Management (CSPM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Kubernetes Security Posture Management (KSPM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Built-in mapping of your resources to compliance frameworks to help with audits</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Vulnerability management</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cloud Infrastructure Entitlement Management (CIEM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>File integrity monitoring</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Workload Protection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Anomalous workload profile detection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Resource Catalog</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Workflows</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 allotted workflow executions per host per month</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">20 allotted workflow executions per host per month</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Containers</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 containers allotted per host per month</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">10 containers allotted per host per month</p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=infrastructure-monitoring-common-questions><a class=text-black href=#infrastructure-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=infrastructure-monitoring-how-do-you-define-a-host><a class=text-black href=#infrastructure-monitoring-how-do-you-define-a-host>How do you define a host?</a></dt><dd class=ps-0>A host is any physical or virtual OS instance that you monitor with Datadog. It could be a server, VM, or node (in the case of Kubernetes).</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-do-i-monitor-containers><a class=text-black href=#infrastructure-monitoring-how-do-i-monitor-containers>How do I monitor containers?</a></dt><dd class=ps-0>The Datadog Agent runs in a container alongside any number of other containers on a host. From there it can collect metrics from its neighboring containers and from the host itself. Depending on your plan, you can monitor 5 or 10 containers free for each host license. Additional containers will be billed at $<span x-text="pricing[region]['CONT-EXCL-AGENT'].on_demand_cost">0.002</span> per container per hour. In addition, you can purchase prepaid containers at $<span x-text="pricing[region]['CONT-EXCL-AGENT'].annual_cost">1</span> per container per month or $<span x-text="pricing[region]['CONT-DEVSECOPS-ENT'].annual_cost">1.50</span> per container per month for DevSecOps Containers.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-what-is-a-custom-metric><a class=text-black href=#infrastructure-monitoring-what-is-a-custom-metric>What is a custom metric?</a></dt><dd class=ps-0>Datadog was designed to allow you to monitor your own custom applications and business metrics—not just your infrastructure. You can send any and all of your organization&rsquo;s important metrics to Datadog for graphing, alerting, correlation, anomaly detection and more. Example uses: monitoring ad revenue, the rate at which shopping carts are abandoned, or the health of an in-game economy. Many customers find these metrics invaluable, especially when combined with infrastructure metrics.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-many-custom-metrics-are-a-hrefpricingallotmentsallotteda-per-host><a class=text-black href=#infrastructure-monitoring-how-many-custom-metrics-are-a-hrefpricingallotmentsallotteda-per-host>How many custom metrics are <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host?</a></dt><dd class=ps-0>Datadog offers 100 custom metrics for every host monitored with Infrastructure Pro, or 200 custom metrics for every host monitored with Infrastructure Enterprise.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-do-i-get-charged-for-additional-custom-metrics><a class=text-black href=#infrastructure-monitoring-how-do-i-get-charged-for-additional-custom-metrics>How do I get charged for additional custom metrics?</a></dt><dd class=ps-0>Custom metrics beyond your included allocation are billed based on usage. <a class=js-modal-demo>Contact us</a> or reach out to your <a href=mailto:sales@datadoghq.com>Sales</a> or <a href=mailto:customer-success@datadoghq.com>Customer Success</a> rep for more details.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-does-datadog-count-and-meter-custom-metrics><a class=text-black href=#infrastructure-monitoring-how-does-datadog-count-and-meter-custom-metrics>How does Datadog count and meter custom metrics?</a></dt><dd class=ps-0>Custom metrics are counted hourly and averaged monthly across your entire account, not on a per-host basis. For more details around Custom Metrics metering, please see our <a href="https://docs.datadoghq.com/account_management/billing/custom_metrics/?tab=countrate">Custom Metrics Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-what-is-a-custom-event><a class=text-black href=#infrastructure-monitoring-what-is-a-custom-event>What is a custom event?</a></dt><dd class=ps-0>Datadog allows you to send custom events coming from your own custom applications such as custom-built deployment tools or scheduled maintenance jobs. This way, you can correlate any of these events with performance metrics, create monitors for alerting and enrich events at intake with processing pipelines to be queried alongside other standard events.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-many-events-are-a-hrefpricingallotmentsallotteda-per-host><a class=text-black href=#infrastructure-monitoring-how-many-events-are-a-hrefpricingallotmentsallotteda-per-host>How many events are <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host?</a></dt><dd class=ps-0>Datadog offers 500 custom events for every host monitored with infrastructure monitoring for pro plan, or 1000 for enterprise plan. Custom events are averaged across your entire account, not just on a per-host basis. Beyond this limit, Datadog charges $<span x-text="pricing[region]['CUSTOM-EVENTS'].annual_cost">2</span> for 100 000 custom events (billed annually or $<span x-text="pricing[region]['CUSTOM-EVENTS'].on_demand_cost">3</span> on-demand), although it is rare for our customers to exceed the allotted volume.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-can-i-send-custom-metrics-and-events><a class=text-black href=#infrastructure-monitoring-how-can-i-send-custom-metrics-and-events>How can I send custom metrics and events?</a></dt><dd class=ps-0><p>You can send Datadog custom metrics and events in three ways<ul></p><li>The Datadog Agent ships with DogStatsD so you can submit custom metrics via the Agent's non-blocking API functions for many programming languages.</li><li>The Datadog Agent allows for the creation of custom integrations via plugins to the Agent. This plugin system allows the Agent to collect custom metrics on your behalf. Integrations which are contributed back to the Datadog Agent convert to standard metrics.</li><li>Datadog also has a full-featured API that you can send your metrics to—either directly over HTTP or with a language-specific library.</li></ul></dd><dt class="border-0 ps-0" id=infrastructure-monitoring-what-compliance-frameworks-does-devsecops-support><a class=text-black href=#infrastructure-monitoring-what-compliance-frameworks-does-devsecops-support>What compliance frameworks does DevSecOps support?</a></dt><dd class=ps-0>DevSecOps Pro and Enterprise allow you to track conformance to requirements of over 15 industry benchmarks including CIS, PCI DSS, SOC 2, and <a href=https://docs.datadoghq.com/security/misconfigurations/frameworks_and_benchmarks/ target=_blank>more</a>.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-how-can-i-be-sure-my-data-is-secure><a class=text-black href=#infrastructure-monitoring-how-can-i-be-sure-my-data-is-secure>How can I be sure my data is secure?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/security>Security</a> is our top priority. This includes, universal HTTPS, strong TLS configuration, and HTTP Strict Transport Security. Our Agent is open-source, which means it can be reviewed to ensure it meets your security requirements.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-are-there-other-billing-options><a class=text-black href=#infrastructure-monitoring-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly and hourly plans</a> are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing>Billing FAQ</a></dd><dt class="border-0 ps-0" id=infrastructure-monitoring-do-you-have-special-offerings-for-partners><a class=text-black href=#infrastructure-monitoring-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We&rsquo;re always looking to partner with technology and service providers and resellers. See our <a href=https://www.datadoghq.com/partner/>Partners page</a> for more.</dd><dt class="border-0 ps-0" id=infrastructure-monitoring-can-i-buy-the-devsecops-sku-for-some-of-my-hosts-and-standalone-infrastructure-or-cloud-security-skus-for-the-remainder><a class=text-black href=#infrastructure-monitoring-can-i-buy-the-devsecops-sku-for-some-of-my-hosts-and-standalone-infrastructure-or-cloud-security-skus-for-the-remainder>Can I buy the DevSecOps SKU for some of my hosts and standalone Infrastructure or Cloud Security SKUs for the remainder?</a></dt><dd class=ps-0>You cannot purchase any DevSecOps SKU for a subset of your infrastructure, it covers all existing hosts and containers. You also cannot combine the DevSecOps SKU with standalone Infrastructure or Cloud Security SKUs.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-21" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'apm',
                                    
                                        'apm-pro',
                                    
                                        'apm-enterprise',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'apm' ? 'active' : ''"><div class=multi-plan data-plan-count=3><h2 class=text-md-center id=application-performance-monitoring><a class=text-black>Application Performance Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Improve the performance of your cloud-scale<br>applications end to end, down to a single line of code</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['HOSTS-APM'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=APM>APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-APM'] ? pricing[region]['HOSTS-APM'].annual_cost : ''">31</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Resolve issues faster with end-to-end distributed traces and service health metrics</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li x-show=!fedRegionSelected><p class="small fw-semibold">Automatic service discovery and dependency mapping (Universal Service Monitoring)</p></li><li><p class="small fw-semibold">15-minute live trace search & analytics</p></li><li><p class="small fw-semibold">15-day historical search & analytics</p></li><li><p class="small fw-semibold">RED metrics based on 100% of traffic with 15-month retention</p></li><li><p class="small fw-semibold">Correlate traces with metrics, logs, processes, network data, and more</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*With Infrastructure Monitoring attached: billed annually or $<span x-text="pricing[region]['HOSTS-APM'].on_demand_cost">48</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: APM" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['APM-HOST-PRO'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="APM Pro">APM Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['APM-HOST-PRO'] ? pricing[region]['APM-HOST-PRO'].annual_cost : ''">35</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Track and improve the performance of your streaming data pipelines end to end</p><p class="small fw-semibold">Everything included in APM, plus Data Streams Monitoring:</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Automatic dependency mapping of all queues, consumers, and producers</p></li><li><p class="small fw-semibold">End-to-end pipeline latency and consumer lag metrics</p></li><li><p class="small fw-semibold">Faulty queue detection</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*With Infrastructure Monitoring attached: billed annually or $<span x-text="pricing[region]['APM-HOST-PRO'].on_demand_cost">54</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: APM Pro" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['APM-HOST-ENT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="APM Enterprise">APM Enterprise</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['APM-HOST-ENT'] ? pricing[region]['APM-HOST-ENT'].annual_cost : ''">40</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Optimize code performance in production with minimal overhead</p><p class="small fw-semibold">Everything included in APM<span x-show=!fedRegionSelected> Pro</span>, plus Continuous Profiler:</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Code-level tracing including wall, lock, CPU, and I/O time</p></li><li><p class="small fw-semibold">CPU and memory code profiles for resource and cost optimization</p></li><li><p class="small fw-semibold">Code performance comparisons across versions</p></li><li><p class="small fw-semibold">Actionable insights with automatic code analysis</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*With Infrastructure Monitoring attached: billed annually or $<span x-text="pricing[region]['APM-HOST-ENT'].on_demand_cost">60</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: APM Enterprise" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">APM</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">APM Pro</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">APM Enterprise</h4></div><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>End-to-end distributed tracing for any app at any scale</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Service dependency visualizations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Deployment Tracking - performance metrics and version comparisons for every deploy</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Software Catalog - service ownership management alongside real-time observability data</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Universal Service Monitoring - automatically discover, map, and catalog services and dependencies</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Retain spans using tag-based filters and generate custom metrics from any span via the UI</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>AI-based anomaly, outlier, and root cause detection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Dynamic Instrumentation—Add logs, spans, and metrics without interrupting runtime</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Recommendations - Automatically detect optimizations for your services</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>End-to-end visibility between queues and application services</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Detect bottlenecks and message-backed queues</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Measure consumer lag in asynchronous applications</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Attribute unexpected throughput to adjacent services and teams</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Correlate delayed messages with related traces and logs</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Low overhead code profiling in production</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Method timings for every request (incl. time spent on locks, I/O, and more)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>CPU and memory consumption for every service and code line</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Code performance comparisons after deployments (e.g. CPU, memory allocations, lock wait time)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Automatic code analysis and actionable insights</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><p class="fw-semibold small text-start text-uppercase"><a href=https://www.datadoghq.com/pricing/allotments/ class="fw-semibold small text-start text-uppercase">Allotments</a></p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Span Ingestion: 150 GB per APM host per month or 0.205 GB per APM host per hour, averaged across all your APM hosts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Span Retention: 1 million Indexed Spans per APM host per month or 1370 Indexed Spans per APM host per hour, averaged across all your APM hosts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Error Tracking</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter" x-show=!fedRegionSelected><div class=col-3 style="padding:0 6px"><p class=small>Data Streams Monitoring</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Profiled Hosts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>4 containers per profiled host, averaged across all your profiled hosts; then $<span x-text="pricing[region]['PROF-CONT'] ? pricing[region]['PROF-CONT'].annual_cost : ''">2</span> per container</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><p class="fw-semibold small text-start text-uppercase">When combined with other products</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Full stack visibility</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Pivot to related infrastructure metrics, logs, processes, network data, synthetic tests, and RUM sessions</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Cross-product dashboards and alerts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><p class="fw-semibold small text-start text-uppercase">Service and support</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Technical support across chat and email</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Community Forum and Online Docs</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div></div></div><div class="w-100 d-none d-md-block mb-4 border-top border-primary"></div><div class="col-12 text-center mb-7"><span x-show=!fedRegionSelected>Data Streams Monitoring is also available standalone starting at $<span x-text="pricing[region]['DSM']?.annual_cost">15</span> per host<br class="d-none d-md-inline">and </span>Continuous Profiler is available standalone starting at $<span x-text="pricing[region]['PROF-HOSTS'].annual_cost">19</span> per host.<br>APM is also available for Edge Devices, at a reduced price per device with lower ingest and retention allotments.<br><span class=more-details>For more details, <a class=js-modal-demo style=cursor:pointer>Contact Us</a> or reach out to your <a href=mailto:sales@datadoghq.com>Sales</a> or <a href=mailto:customer-success@datadoghq.com>Customer Success</a> rep.</span></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=apm-common-questions><a class=text-black href=#apm-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: APM" @click.prevent="
                  updateQueryParam('tab', 'apm');
                  selected_category = 'APM';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'APM' == selected_category ? 'active' : ''">APM
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: APM Pro" @click.prevent="
                  updateQueryParam('tab', 'apm-pro');
                  selected_category = 'APM PRO';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'APM PRO' == selected_category ? 'active' : ''">APM Pro
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: APM Enterprise" @click.prevent="
                  updateQueryParam('tab', 'apm-enterprise');
                  selected_category = 'APM ENTERPRISE';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'APM ENTERPRISE' == selected_category ? 'active' : ''">APM Enterprise</span></div></div><div class=faq-tab-content id=pills-tabContent--apm><div class=faq-tab id=pills-apm x-show="'APM' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=apm-apm-what-counts-as-a-billable-apm-host><a class=text-black href=#apm-apm-what-counts-as-a-billable-apm-host>What counts as a billable APM host?</a></dt><dd class=ps-0>A billable APM host is a <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-do-you-define-a-host">host</a> that is actively generating traces that are submitted to the Datadog SaaS application, including, but not limited to, an OpenTelemetry Collector. This means that hosts running services that are not instrumented (e.g. databases, caches, queues and load-balancers) and are not generating traces submitted to the Datadog platform do not count as APM hosts even if APM is enabled on them.</dd><dt class="border-0 ps-0" id=apm-apm-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise><a class=text-black href=#apm-apm-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise>Do I need Infrastructure Monitoring to use APM, APM Pro, or APM Enterprise?</a></dt><dd class=ps-0>No. APM<span x-show=!fedRegionSelected>, APM Pro,</span> and APM Enterprise can be purchased standalone and do not require Infrastructure Monitoring. Standalone pricing is $<span x-text="pricing[region]['HOSTS-APM-STANDALONE'].annual_cost">36</span> for APM<span x-show=!fedRegionSelected>, $<span x-text="pricing[region]['APM-PRO-STANDALONE'].annual_cost">41</span> for APM Pro,</span> and $<span x-text="pricing[region]['APM-ENTERPRISE-STANDALONE'].annual_cost">47</span> for APM Enterprise, priced per host, per month, billed annually and available on-demand.</dd><dt class="border-0 ps-0" id=apm-apm-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host><a class=text-black href=#apm-apm-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host>Is Pro or Enterprise Infrastructure Monitoring required on every APM Host?</a></dt><dd class=ps-0>Only if you purchase APM using the Infrastructure Monitoring pricing model. In this case, every host running APM must also be subscribed to Pro or Enterprise Infrastructure Monitoring. For example, if you have 10 APM hosts, those same 10 hosts must have Pro or Enterprise Infrastructure Monitoring. This requirement applies to both committed and on-demand usage for all non-standalone APM tiers.</dd><dt class="border-0 ps-0" id=apm-apm-i-am-an-existing-apm-customer-can-i-switch-to-the-apm-pro-or-apm-enterprise><a class=text-black href=#apm-apm-i-am-an-existing-apm-customer-can-i-switch-to-the-apm-pro-or-apm-enterprise>I am an existing APM customer. Can I switch to the APM Pro or APM Enterprise?</a></dt><dd class=ps-0>Yes. Existing APM customers have the option of changing their plan to APM Pro or APM Enterprise. Contact your Sales or Customer Success rep for help.</dd><dt class="border-0 ps-0" id=apm-apm-can-i-purchase-a-mix-of-apm-apm-pro-and-apm-enterprise-hosts><a class=text-black href=#apm-apm-can-i-purchase-a-mix-of-apm-apm-pro-and-apm-enterprise-hosts>Can I purchase a mix of APM, APM Pro, and APM Enterprise hosts?</a></dt><dd class=ps-0>No. Customers can commit to only one of the plans across all their APM hosts, not a combination thereof.</dd><dt class="border-0 ps-0" id=apm-apm-does-a-purchase-of-apm-host-include-universal-service-monitoring-usm-on-that-same-host><a class=text-black href=#apm-apm-does-a-purchase-of-apm-host-include-universal-service-monitoring-usm-on-that-same-host>Does a purchase of APM host include Universal Service Monitoring (USM) on that same host?</a></dt><dd class=ps-0>Yes. USM is included on the same host APM is purchased on, regardless of the APM tier. This means that Datadog will always discover, map, and monitor every new and/or non-instrumented service running on your APM hosts, automatically.</dd><dt class="border-0 ps-0" id=apm-apm-if-im-an-existing-usm-customer-and-start-using-apm-on-the-same-host-will-i-be-charged-for-both-products><a class=text-black href=#apm-apm-if-im-an-existing-usm-customer-and-start-using-apm-on-the-same-host-will-i-be-charged-for-both-products>If I’m an existing USM customer and start using APM on the same host, will I be charged for both products?</a></dt><dd class=ps-0>No. If both USM and APM are purchased and/or installed on the same host, you will only pay the APM price on the host, based on your APM tier.</dd><dt class="border-0 ps-0" id=apm-apm-what-languages-does-apm-support><a class=text-black href=#apm-apm-what-languages-does-apm-support>What languages does APM support?</a></dt><dd class=ps-0>Java, Python, Ruby, Go, Node, .NET and PHP. You can find the full list of supported languages and libraries in our <a href="https://docs.datadoghq.com/tracing/setup_overview/setup/java/?tabs=containers">documentation</a>.</dd><dt class="border-0 ps-0" id=apm-apm-can-i-add-custom-instrumentation-on-top-of-datadogs-out-of-the-box-instrumentation><a class=text-black href=#apm-apm-can-i-add-custom-instrumentation-on-top-of-datadogs-out-of-the-box-instrumentation>Can I add custom instrumentation on top of Datadog&rsquo;s out-of-the-box instrumentation?</a></dt><dd class=ps-0>Yes. We provide auto-instrumentation for popular libraries and frameworks, but you can easily add custom instrumentation if desired.</dd><dt class="border-0 ps-0" id=apm-apm-can-i-run-apm-with-containers><a class=text-black href=#apm-apm-can-i-run-apm-with-containers>Can I run APM with containers?</a></dt><dd class=ps-0>Yes, you can run APM in a containerized environment. The number of containers running on each host (node) does not impact the APM host-based price.</dd><dt class="border-0 ps-0" id=apm-apm-what-is-the-difference-between-ingestion-and-retention><a class=text-black href=#apm-apm-what-is-the-difference-between-ingestion-and-retention>What is the difference between ingestion and retention?</a></dt><dd class=ps-0>Ingestion means sending your traces to Datadog and having all of them available for Live Search and Analytics for 15 minutes. Retention means storing your most important traces (e.g. error, high latency, or business-critical ones) and making them available for search and analysis during a retention period of your choice (15 days by default).</dd><dt class="border-0 ps-0" id=apm-apm-can-i-ingest-additional-spans><a class=text-black href=#apm-apm-can-i-ingest-additional-spans>Can I ingest additional spans?</a></dt><dd class=ps-0><p>Yes. While we include 150GB per APM host by default for Ingested Spans, you can always ingest additional traces and spans for 15-minute live trace search and analytics at $<span x-text="pricing[region]['SPANS-INGEST'].annual_cost">0.10</span>/GB.</p><p><strong>Note:</strong> The allotted 150GB per host is summed over all the APM hosts. For example, if in a given month you have 2 APM hosts and one ingests 250GBs and the other 50GBs (300GB in total), you will not be billed for ingestion that month.</p></dd><dt class="border-0 ps-0" id=apm-apm-can-i-retain-index-additional-spans-and-modify-the-retention-period><a class=text-black href=#apm-apm-can-i-retain-index-additional-spans-and-modify-the-retention-period>Can I retain (index) additional spans and modify the retention period?</a></dt><dd class=ps-0><p>Yes. While we include 1 million Indexed Spans per APM host with 15-day retention by default, you can always retain additional spans.</p><p>For additional Indexed Spans, we offer the following retention periods:</p><ul><li>7-day retention at $<span x-text="pricing[region]['TRACE-7DAY'].annual_cost">1.27</span> per million spans per month (billed annually or $<span x-text="pricing[region]['TRACE-7DAY'].on_demand_cost">1.91</span> on-demand)</li><li>15-day retention at $<span x-text="pricing[region]['TRACE-15DAY'].annual_cost">1.70</span> per million spans per month (billed annually or $<span x-text="pricing[region]['TRACE-15DAY'].on_demand_cost">2.55</span> on-demand)</li><li>30-day retention at $<span x-text="pricing[region]['TRACE-30DAY'].annual_cost">2.50</span> per million spans per month (billed annually or or $<span x-text="pricing[region]['TRACE-30DAY'].on_demand_cost">3.75</span> on-demand)</li></ul><p>If you need longer retention, please reach out to your <a href=mailto:customer-success@datadoghq.com>Customer Success</a> or <a href=mailto:sales@datadoghq.com>Sales</a> rep to customize your plan.</p><p><strong>Note 1:</strong> The allotted 1 million Indexed Spans per host is summed across all your APM hosts. For example, if in a given month you have 2 APM hosts and you index 1.5 million spans from one and 0.5 million from the other (2 million in total), you will not be billed for indexing that month.</p><p><strong>Note 2:</strong> Indexed Spans that are <a href=https://docs.datadoghq.com/tracing/trace_pipeline/#datadog-intelligent-retention-filter target=_blank>auto-retained</a> by Datadog <span class=text-underline>do not</span> count towards the 1 million Indexed Spans that are allotted per host.</p></dd><dt class="border-0 ps-0" id=apm-apm-how-does-on-demand-billing-of-ingested-and-indexed-spans-differ-from-my-committed-plan><a class=text-black href=#apm-apm-how-does-on-demand-billing-of-ingested-and-indexed-spans-differ-from-my-committed-plan>How does on-demand billing of ingested and indexed spans differ from my committed plan?</a></dt><dd class=ps-0><p>On-demand use of APM is counted on an hourly basis. Both ingested and indexed span allotment are metered each hour and are not aggregated across all use throughout the month.</p><p>This means that ingested and indexed span use that goes over the associated APM Host allotment in the same hour will increase billing regardless of span use during other times.</p></dd><dt class="border-0 ps-0" id=apm-apm-what-are-the-a-hrefpricingallotmentshourly-span-allotmentsa-and-on-demand-pricing><a class=text-black href=#apm-apm-what-are-the-a-hrefpricingallotmentshourly-span-allotmentsa-and-on-demand-pricing>What are the <a href=https://www.datadoghq.com/pricing/allotments/>hourly span allotments</a> and on-demand pricing?</a></dt><dd class=ps-0><p>For every host hour, customers get an hourly allotment corresponding to a share of the monthly allotment (150 GB for ingested spans and 1M indexed) split evenly by hour by month in the current year. For example, in January, for every host hour, customers get an allotment of 0.205 GB (150 GB / (365 * 24 / 12)) for ingested spans and 1369 indexed spans (1 M / (365 * 24 / 12)).</p><p>For additional volume, in a given hour, customers will be charged $<span x-text="pricing[region]['SPANS-INGEST'].annual_cost">0.10</span> per additional GB of ingested spans and the indexed spans rate for every additional 1M indexed spans.</p></dd><dt class="border-0 ps-0" id=apm-apm-do-i-have-to-ingest-andor-retain-100-of-my-traces><a class=text-black href=#apm-apm-do-i-have-to-ingest-andor-retain-100-of-my-traces>Do I have to ingest and/or retain 100% of my traces?</a></dt><dd class=ps-0>No. Updates to trace ingestion and retention can be made directly in the UI giving customers full control over their data and costs. For additional information, view the <a href=https://docs.datadoghq.com/tracing/trace_pipeline/ingestion_controls/>Ingestion Controls</a> and <a href=https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/>Trace Retention</a> documentation.</dd><dt class="border-0 ps-0" id=apm-apm-does-trace-sampling-impact-the-accuracy-of-red-metrics><a class=text-black href=#apm-apm-does-trace-sampling-impact-the-accuracy-of-red-metrics>Does trace sampling impact the accuracy of RED metrics?</a></dt><dd class=ps-0>No, the listed APM price includes RED metrics (requests, errors, duration). Regardless of any sampling rate (default or custom), RED metrics are always calculated based on 100% of application traffic.</dd><dt class="border-0 ps-0" id=apm-apm-how-are-span-based-metrics-billed><a class=text-black href=#apm-apm-how-are-span-based-metrics-billed>How are span-based metrics billed?</a></dt><dd class=ps-0>Span-based metrics are counted towards your Custom Metrics allocation <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-many-custom-metrics-are-a-hrefpricingallotmentsallotteda-per-host">as outlined in your infrastructure plan</a>.</dd><dt class="border-0 ps-0" id=apm-apm-are-there-other-billing-options><a class=text-black href=#apm-apm-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly and hourly plans</a> are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/ target=_blank>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=apm-apm-can-i-run-apm-with-mobile-devices-android-ios-etc><a class=text-black href=#apm-apm-can-i-run-apm-with-mobile-devices-android-ios-etc>Can I run APM with Mobile Devices (Android, IoS etc.,)?</a></dt><dd class=ps-0>Yes, We have the Tracing Libraries that support <a href="https://docs.datadoghq.com/tracing/trace_collection/automatic_instrumentation/dd_libraries/android/?tab=kotlin">Android</a> and <a href="https://docs.datadoghq.com/tracing/trace_collection/automatic_instrumentation/dd_libraries/ios?tab=swiftpackagemanagerspm%27">iOS</a> applications. Running the Datadog Agent is not required for Mobile Devices. The APM price is based on the ingested and indexed spans volume (note: by default, spans are indexed for 15 days).</dd><dt class="border-0 ps-0" id=apm-apm-can-i-use-apm-on-edge-devices><a class=text-black href=#apm-apm-can-i-use-apm-on-edge-devices>Can I use APM on Edge Devices?</a></dt><dd class=ps-0>APM is available for Edge Devices, such as Point of Sale (POS) systems, in-store kiosks, industrial devices, and entertainment systems. The same APM features are included, at a reduced price per device with lower ingest and retention allotments. Please contact your <a href=mailto:customer-success@datadoghq.com>Customer Success</a> or <a href=mailto:sales@datadoghq.com>Sales</a> rep with details of your use case.</dd></dl></div><div class=faq-tab id=pills-apm-pro x-show="'APM PRO' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=apm-apm-pro-what-counts-as-a-billable-apm-host><a class=text-black href=#apm-apm-pro-what-counts-as-a-billable-apm-host>What counts as a billable APM host?</a></dt><dd class=ps-0>A billable APM host is a <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-do-you-define-a-host">host</a> that is actively generating traces that are submitted to the Datadog SaaS application, including, but not limited to, an OpenTelemetry Collector. This means that hosts running services that are not instrumented (e.g. databases, caches, queues and load-balancers) and are not generating traces submitted to the Datadog platform do not count as APM hosts even if APM is enabled on them.</dd><dt class="border-0 ps-0" id=apm-apm-pro-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise><a class=text-black href=#apm-apm-pro-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise>Do I need Infrastructure Monitoring to use APM, APM Pro, or APM Enterprise?</a></dt><dd class=ps-0>No. APM<span x-show=!fedRegionSelected>, APM Pro,</span> and APM Enterprise can be purchased standalone and do not require Infrastructure Monitoring. Standalone pricing is $<span x-text="pricing[region]['HOSTS-APM-STANDALONE'].annual_cost">36</span> for APM<span x-show=!fedRegionSelected>, $<span x-text="pricing[region]['APM-PRO-STANDALONE'].annual_cost">41</span> for APM Pro,</span> and $<span x-text="pricing[region]['APM-ENTERPRISE-STANDALONE'].annual_cost">47</span> for APM Enterprise, priced per host, per month, billed annually and available on-demand.</dd><dt class="border-0 ps-0" id=apm-apm-pro-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host><a class=text-black href=#apm-apm-pro-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host>Is Pro or Enterprise Infrastructure Monitoring required on every APM Host?</a></dt><dd class=ps-0>Only if you purchase APM using the Infrastructure Monitoring pricing model. In this case, every host running APM must also be subscribed to Pro or Enterprise Infrastructure Monitoring. For example, if you have 10 APM hosts, those same 10 hosts must have Pro or Enterprise Infrastructure Monitoring. This requirement applies to both committed and on-demand usage for all non-standalone APM tiers.</dd><dt class="border-0 ps-0" id=apm-apm-pro-what-is-data-streams-monitoring-and-how-does-it-work><a class=text-black href=#apm-apm-pro-what-is-data-streams-monitoring-and-how-does-it-work>What is Data Streams Monitoring and how does it work?</a></dt><dd class=ps-0>Datadog Data Streams Monitoring (DSM) allows you to track and improve the performance of event-driven applications that use Kafka and RabbitMQ. DSM automatically maps dependencies between all services and queues, measures latency between them, and provides additional health metrics, such as consumer lag, across your streaming data pipeline to help you monitor it end to end.</dd><dt class="border-0 ps-0" id=apm-apm-pro-what-counts-as-a-billable-dsm-host><a class=text-black href=#apm-apm-pro-what-counts-as-a-billable-dsm-host>What counts as a billable DSM host?</a></dt><dd class=ps-0>A billable Data Streams Monitoring host is a host that has the Datadog Agent installed and producer and consumer services that are running on it and instrumented for DSM. Visit our documentation for additional setup information.</dd><dt class="border-0 ps-0" id=apm-apm-pro-what-kind-of-billing-plan-do-i-need-to-run-data-streams-monitoring><a class=text-black href=#apm-apm-pro-what-kind-of-billing-plan-do-i-need-to-run-data-streams-monitoring>What kind of billing plan do I need to run Data Streams Monitoring?</a></dt><dd class=ps-0>Every billable DSM host requires the purchase of Pro or Enterprise Infrastructure Monitoring, regardless if it is combined with APM. Annual, month-to-month, and on-demand billing plans are available. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/apm_tracing_profiler/>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=apm-apm-pro-can-i-purchase-data-streams-monitoring-not-as-part-of-an-apm-plan x-show=!fedRegionSelected><a class=text-black href=#apm-apm-pro-can-i-purchase-data-streams-monitoring-not-as-part-of-an-apm-plan>Can I purchase Data Streams Monitoring not as part of an APM plan?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Yes, <a href="https://www.datadoghq.com/pricing/?product=data-streams-monitoring#products">Data Streams Monitoring</a> can be purchased on top of Pro or Enterprise Infrastructure Monitoring hosts starting at $<span x-text="pricing[region]['DSM']?.annual_cost">15</span> per host per month with an annual commitment.</dd><dt class="border-0 ps-0" id=apm-apm-pro-can-i-purchase-apm-pro-for-a-portion-of-my-hosts-and-individual-standalone-products-for-the-rest-of-my-hosts><a class=text-black href=#apm-apm-pro-can-i-purchase-apm-pro-for-a-portion-of-my-hosts-and-individual-standalone-products-for-the-rest-of-my-hosts>Can I purchase APM Pro for a portion of my hosts and individual standalone products for the rest of my hosts?</a></dt><dd class=ps-0>No. Customers can commit to only one of the plans across all their APM hosts, not a combination thereof. That said, APM-only customers can purchase Data Streams Monitoring and/or Continuous Profiler on a portion of their hosts, and APM Pro customers can purchase Continuous Profiler on a portion of their hosts.</dd><dt class="border-0 ps-0" id=apm-apm-pro-what-technologies-do-you-support><a class=text-black href=#apm-apm-pro-what-technologies-do-you-support>What Technologies do you support?</a></dt><dd class=ps-0>DSM currently supports Java, Go, .NET/C# for Kafka and Java and Go for RabbitMQ. Support for additional technologies and programming languages is coming soon.</dd><dt class="border-0 ps-0" id=apm-apm-pro-how-long-is-dsm-data-retained-for><a class=text-black href=#apm-apm-pro-how-long-is-dsm-data-retained-for>How long is DSM data retained for?</a></dt><dd class=ps-0>Map history is stored for 30 days and all metrics are retained for 15 months.</dd></dl></div><div class=faq-tab id=pills-apm-enterprise x-show="'APM ENTERPRISE' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=apm-apm-enterprise-what-counts-as-a-billable-apm-host><a class=text-black href=#apm-apm-enterprise-what-counts-as-a-billable-apm-host>What counts as a billable APM host?</a></dt><dd class=ps-0>A billable APM host is a <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-do-you-define-a-host">host</a> that is actively generating traces that are submitted to the Datadog SaaS application, including, but not limited to, an OpenTelemetry Collector. This means that hosts running services that are not instrumented (e.g. databases, caches, queues and load-balancers) and are not generating traces submitted to the Datadog platform do not count as APM hosts even if APM is enabled on them.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise><a class=text-black href=#apm-apm-enterprise-do-i-need-infrastructure-monitoring-to-use-apm-apm-pro-or-apm-enterprise>Do I need Infrastructure Monitoring to use APM, APM Pro, or APM Enterprise?</a></dt><dd class=ps-0>No. APM<span x-show=!fedRegionSelected>, APM Pro,</span> and APM Enterprise can be purchased standalone and do not require Infrastructure Monitoring. Standalone pricing is $<span x-text="pricing[region]['HOSTS-APM-STANDALONE'].annual_cost">36</span> for APM<span x-show=!fedRegionSelected>, $<span x-text="pricing[region]['APM-PRO-STANDALONE'].annual_cost">41</span> for APM Pro,</span> and $<span x-text="pricing[region]['APM-ENTERPRISE-STANDALONE'].annual_cost">47</span> for APM Enterprise, priced per host, per month, billed annually and available on-demand.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host><a class=text-black href=#apm-apm-enterprise-is-pro-or-enterprise-infrastructure-monitoring-required-on-every-apm-host>Is Pro or Enterprise Infrastructure Monitoring required on every APM Host?</a></dt><dd class=ps-0>Only if you purchase APM using the Infrastructure Monitoring pricing model. In this case, every host running APM must also be subscribed to Pro or Enterprise Infrastructure Monitoring. For example, if you have 10 APM hosts, those same 10 hosts must have Pro or Enterprise Infrastructure Monitoring. This requirement applies to both committed and on-demand usage for all non-standalone APM tiers.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-what-is-continuous-profiler><a class=text-black href=#apm-apm-enterprise-what-is-continuous-profiler>What is Continuous Profiler?</a></dt><dd class=ps-0>Continuous Profiler is a tool to observe and analyze code-level performance in your production environment at all times with minimal overhead. It allows developers to identify and optimize the most resource-consuming methods in their code. We provide comprehensive <a href=https://docs.datadoghq.com/tracing/profiling/>documentation</a> and encourage you to take a read.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-what-counts-as-a-billable-continuous-profiler-host><a class=text-black href=#apm-apm-enterprise-what-counts-as-a-billable-continuous-profiler-host>What counts as a billable Continuous Profiler host?</a></dt><dd class=ps-0>A billable Continuous Profiler <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-do-you-define-a-host">host</a> is a host that has profiling installed and enabled according to Datadog&rsquo;s runtime-specific setup instructions (<a href="https://docs.datadoghq.com/profiler/enabling/java?tab=commandarguments#installation">example</a>) and submits profiles to the Datadog SaaS application.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-what-kind-of-billing-plan-do-i-need-to-run-apm-enterprise><a class=text-black href=#apm-apm-enterprise-what-kind-of-billing-plan-do-i-need-to-run-apm-enterprise>What kind of billing plan do I need to run APM Enterprise?</a></dt><dd class=ps-0>Every billable Continuous Profiler host requires the purchase of Pro or Enterprise Infrastructure Monitoring, regardless if it is combined with APM. The price includes 4 containers running profiled applications per host, summed across all Profiled hosts. Every additional container costs $<span x-text="pricing[region]['PROF-CONT'] ? pricing[region]['PROF-CONT'].annual_cost : ''">2</span>. Annual, month-to-month, and on-demand billing plans are available. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-i-am-an-existing-continuous-profiler-customer-can-i-switch-to-the-apm-enterprise-plan><a class=text-black href=#apm-apm-enterprise-i-am-an-existing-continuous-profiler-customer-can-i-switch-to-the-apm-enterprise-plan>I am an existing Continuous Profiler customer. Can I switch to the APM Enterprise plan?</a></dt><dd class=ps-0>Yes. Existing Continuous Profiler customers have the option of changing their plan to APM Enterprise starting at $<span x-text="pricing[region]['APM-HOST-ENT'].annual_cost">40</span> per host per month. Contact your <a href=mailto:sales@datadoghq.com>Sales</a> or <a href=mailto:customer-success@datadoghq.com>Customer Success</a> rep for help.'</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-can-i-purchase-continuous-profiler-standalone><a class=text-black href=#apm-apm-enterprise-can-i-purchase-continuous-profiler-standalone>Can I purchase Continuous Profiler standalone?</a></dt><dd class=ps-0>Yes, Continuous Profiler can be purchased standalone at $<span x-text="pricing[region]['PROF-HOSTS'].annual_cost">19</span> per profiled host per month with an annual commitment. Month-to-month and on-demand plans are also available at $<span x-text="pricing[region]['PROF-HOSTS'].on_demand_cost">23</span> per profiled host per month or $<span x-text="pricing[region]['PROF-CONT'] ? pricing[region]['PROF-CONT'].on_demand_cost : ''">0.004</span> per hour. <a class=js-modal-demo style=cursor:pointer>Contact us</a> or reach out to your <a href=mailto:sales@datadoghq.com>Sales</a> or <a href=mailto:customer-success@datadoghq.com>Customer Success</a> rep for more details.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-can-i-purchase-apm-enterprise-for-a-portion-of-my-hosts-and-individual-standalone-products-for-the-rest-of-my-hosts><a class=text-black href=#apm-apm-enterprise-can-i-purchase-apm-enterprise-for-a-portion-of-my-hosts-and-individual-standalone-products-for-the-rest-of-my-hosts>Can I purchase APM Enterprise for a portion of my hosts and individual standalone products for the rest of my hosts?</a></dt><dd class=ps-0>No. Customers can commit to only one of the plans across all their APM hosts, not a combination thereof. That said, APM-only customers can purchase Continuous Profiler and/or Data Streams Monitoring on a portion of their hosts, and APM Pro customers can purchase Continuous Profiler on a portion of their hosts.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-how-do-you-define-a-profiled-host><a class=text-black href=#apm-apm-enterprise-how-do-you-define-a-profiled-host>How do you define a profiled host?</a></dt><dd class=ps-0>A profiled host is a physical or virtual operating system instance which is running a profiled application. To be profiled, the host would need to have the agent installed and profiling enabled. When combined with APM, every APM host is also a profiler host, and vice versa. The same logic applies to profiled containers. For more information visit our <a href=https://docs.datadoghq.com/account_management/billing>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-which-languages-does-continuous-profiler-support><a class=text-black href=#apm-apm-enterprise-which-languages-does-continuous-profiler-support>Which languages does Continuous Profiler support?</a></dt><dd class=ps-0>Continuous Profiler supports Java, .NET, Go, Python, Ruby, .Node.js, and PHP. Support for C, C++, and Rust is in beta.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-how-does-datadog-continuous-profiler-work><a class=text-black href=#apm-apm-enterprise-how-does-datadog-continuous-profiler-work>How does Datadog Continuous Profiler work?</a></dt><dd class=ps-0>Our profilers constantly collect representative samples of all stack traces, aggregate them over a 60-second time period and forwards them through the Datadog agent. This is done continuously in one-minute intervals which means you will never lose code-level visibility in your services. To profile your services, simply import our profiling library or enable an environment variable flag when you run the APM tracer.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-how-do-you-ensure-minimal-performance-impact-in-production><a class=text-black href=#apm-apm-enterprise-how-do-you-ensure-minimal-performance-impact-in-production>How do you ensure minimal performance impact in production?</a></dt><dd class=ps-0>We use the latest, most cutting-edge technologies, such as the <a href=https://docs.oracle.com/javacomponents/jmc-5-5/jfr-runtime-guide/about.htm#JFRRT107 target=_blank>JDK Flight Recorder</a>, to ensure that performance impact is minimal even with full production workloads. Additionally, our profilers do not interrupt or interfere with any of your service requests hence we introduce no additional request latency.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-how-is-profiling-different-from-tracing><a class=text-black href=#apm-apm-enterprise-how-is-profiling-different-from-tracing>How is profiling different from tracing?</a></dt><dd class=ps-0>Tracing measures latency of requests across services in distributed systems, whereas profiling provides deeper insights on all that happened on the code level of the services.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-what-are-the-benefits-of-datadog-continuous-profiler><a class=text-black href=#apm-apm-enterprise-what-are-the-benefits-of-datadog-continuous-profiler>What are the benefits of Datadog Continuous Profiler?</a></dt><dd class=ps-0>Continuous Profiler is tightly integrated with the rest of the Datadog platform and it extends our seamless correlations between metrics, traces, and logs to the code level. This is extremely useful for code performance optimization, cost savings on cloud provider bills, and reducing request latency for improved user experience.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-what-types-of-profiles-are-available><a class=text-black href=#apm-apm-enterprise-what-types-of-profiles-are-available>What types of profiles are available?</a></dt><dd class=ps-0>CPU, Memory, Lock, Wall Time, Disk IO, Socket IO, Goroutines, Exceptions and many more profile types are available and may vary by programming language. For more information visit our <a href=https://docs.datadoghq.com/profiler/>documentation page</a>.</dd><dt class="border-0 ps-0" id=apm-apm-enterprise-are-there-other-billing-options><a class=text-black href=#apm-apm-enterprise-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly and hourly plans</a> are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing>Billing FAQ</a>.</dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-28" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'workload-protection' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=workload-protection><a class=text-black>Workload Protection</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Runtime Security Posture, File Integrity Monitoring, Threat Detection, and Malware Protection for all your workloads</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['CWS-HOSTS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CWS-HOSTS'] ? pricing[region]['CWS-HOSTS'].annual_cost : ''">15</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Deep file & process activity monitoring</p></li><li><p class=m-0>Performant, in-kernel, eBPF-powered analysis</p></li><li><p class=m-0>Network anomaly detection</p></li><li><p class=m-0>4 containers <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host license**</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span x-text="pricing[region]['CWS-HOSTS'] ? pricing[region]['CWS-HOSTS'].on_demand_cost : ''">18</span> on-demand<br>**Additional containers billed at $<span x-text="pricing[region]['CWS-CONT'] ? pricing[region]['CWS-CONT'].on_demand_cost : ''">0.002</span> / hr per container<br></p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><p class="fw-semibold small text-start text-uppercase">Add-ons</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Workload Protection for AWS Fargate</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">$<span x-text="pricing[region]['FARGATE-CWS'] ? pricing[region]['FARGATE-CWS'].annual_cost : ''">2.60</span> per task ($<span x-text="pricing[region]['FARGATE-CWS'] ? pricing[region]['FARGATE-CWS'].on_demand_cost : ''">3.70</span> on demand)</p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=workload-protection-common-questions><a class=text-black href=#workload-protection-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=workload-protection-what-kind-of-billing-plan-do-i-need-to-run-workload-protection><a class=text-black href=#workload-protection-what-kind-of-billing-plan-do-i-need-to-run-workload-protection>What kind of billing plan do I need to run Workload Protection?</a></dt><dd class=ps-0>Workload Protection can be purchased in addition to Infrastructure Monitoring, and is already included if CSM Enterprise is purchased.</dd><dt class="border-0 ps-0" id=workload-protection-what-counts-as-a-billable-host><a class=text-black href=#workload-protection-what-counts-as-a-billable-host>What counts as a billable host?</a></dt><dd class=ps-0>A host is any physical or virtual OS instance that you monitor with Datadog. It could be a server, VM, node (in the case of Kubernetes) or App Service Plan instance (in the case of Azure App Services).</dd><dt class="border-0 ps-0" id=workload-protection-how-do-i-monitor-containers-and-kubernetes-workloads><a class=text-black href=#workload-protection-how-do-i-monitor-containers-and-kubernetes-workloads>How do I monitor containers and Kubernetes workloads?</a></dt><dd class=ps-0>In containerized environments, the Datadog agent runs in a container alongside any number of other containers on a host. From there it monitors system activity for all running containers and for the host itself. Depending on your plan, you can monitor 4 containers free for each host license. Additional containers will be billed at $<span x-text="pricing[region]['CWS-CONT'] ? pricing[region]['CWS-CONT'].on_demand_cost : ''">0.002</span> per container per hour. In addition, you can purchase prepaid containers at $<span x-text="pricing[region]['CWS-CONT'] ? pricing[region]['CWS-CONT'].annual_cost : ''">1</span> per container per month.</dd><dt class="border-0 ps-0" id=workload-protection-what-environments-does-workload-protection-support><a class=text-black href=#workload-protection-what-environments-does-workload-protection-support>What environments does Workload Protection support?</a></dt><dd class=ps-0>We support most major Linux distributions, Windows Servers, and container runtimes including Docker and Kubernetes to provide unparalleled visibility into your workloads.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-32" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'ci-cd-monitoring' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=ci-pipeline-visibility><a class=text-black>CI Pipeline Visibility</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Monitor the health and performance of your CI pipelines</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['PIP-VIS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['PIP-VIS'] ? pricing[region]['PIP-VIS'].annual_cost : ''">8</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: CI Pipeline Visibility" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>View data from multiple CI providers in a single place</p></li><li><p class=m-0>Visualize performance across pipelines, stages, and jobs</p></li><li><p class=m-0>Surface recurring errors and the commits that caused them</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['PIP-VIS'] ? pricing[region]['PIP-VIS'].on_demand_cost : ''">12</span> on-demand</p><a data-dd-action-name="card: button: start free trial: CI Pipeline Visibility" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Diagnose the health & performance of your pipelines</p></li><li class="list-item mb-1"><p class=font-18>Make data-driven decisions to optimize your CI/CD</p></li><li class="list-item mb-1"><p class=font-18>Pipeline Visibility is currently compatible with GitLab, GitHub Actions, Jenkins, CircleCI, Buildkite, Codefresh, TeamCity, Azure DevOps, and AWS CodePipeline. Other providers and custom pipelines can be integrated <a href="https://docs.datadoghq.com/continuous_integration/pipelines/custom_tags_and_measures/?tab=linux">via API</a>. Out-of-the-box support for more CI providers is coming soon.</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Powerful out-of-the-box dashboards & integrations</p></li><li class="list-item mb-1"><p class=font-18>Alert relevant teams about pipeline health and performance</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Auto-instrument pipelines and tests to seamlessly pivot to related logs and errors</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support via Chat and Email, Community Forum, and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Learn more about our additional support plans</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=ci-cd-monitoring-common-questions><a class=text-black href=#ci-cd-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=ci-cd-monitoring-how-do-you-define-a-committer><a class=text-black href=#ci-cd-monitoring-how-do-you-define-a-committer>How do you define a committer?</a></dt><dd class=ps-0>A committer means an active Git committer; they are identified through their Git author email address. A committer is counted towards billing if they commit at least 3 times in a given month.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-how-do-you-define-a-committer-in-a-pipeline-not-linked-in-a-git-repository><a class=text-black href=#ci-cd-monitoring-how-do-you-define-a-committer-in-a-pipeline-not-linked-in-a-git-repository>How do you define a committer in a pipeline not linked in a Git repository?</a></dt><dd class=ps-0>In the event that a pipeline is not associated to a git repository, or git metadata is unavailable, the username of the person triggering the pipeline execution will be used as the billable committer.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-can-i-purchase-more-than-one-software-delivery-plan-for-my-team><a class=text-black href=#ci-cd-monitoring-can-i-purchase-more-than-one-software-delivery-plan-for-my-team>Can I purchase more than one software delivery plan for my team?</a></dt><dd class=ps-0>Yes, customers can purchase a combination of software delivery plans. For example, for a team of 10, you can have 8 committers billed for Pipeline Visibility and 5 committers billed for Test Optimization.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-how-do-you-define-a-span><a class=text-black href=#ci-cd-monitoring-how-do-you-define-a-span>How do you define a span?</a></dt><dd class=ps-0>Every pipeline, pipeline stage and pipeline job is considered a span in Pipeline Visibility.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-how-many-spans-are-a-hrefpricingallotmentsallotteda><a class=text-black href=#ci-cd-monitoring-how-many-spans-are-a-hrefpricingallotmentsallotteda>How many spans are <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a>?</a></dt><dd class=ps-0>400,000 spans per committer per month or 547.95 spans per committer per hour (both summed across all Pipeline Visibility committers). Additional pipeline spans can be purchased at $<span x-text="pricing[region]['PIP-SPA-VIS'] ? pricing[region]['PIP-SPA-VIS'].month_to_month_cost : ''">3</span> per million spans per month.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-what-is-the-span-retention-period><a class=text-black href=#ci-cd-monitoring-what-is-the-span-retention-period>What is the span retention period?</a></dt><dd class=ps-0>Pipeline spans are retained for 15 months.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-can-i-modify-the-span-retention-period><a class=text-black href=#ci-cd-monitoring-can-i-modify-the-span-retention-period>Can I modify the span retention period?</a></dt><dd class=ps-0>No, the span retention period cannot be modified.</dd><dt class="border-0 ps-0" id=ci-cd-monitoring-what-ci-providers-does-ci-visibility-support><a class=text-black href=#ci-cd-monitoring-what-ci-providers-does-ci-visibility-support>What CI providers does CI Visibility support?</a></dt><dd class=ps-0>Pipeline Visibility is currently compatible with GitLab, GitHub Actions, Jenkins, CircleCI, Buildkite, Codefresh, TeamCity, Azure DevOps, and AWS CodePipeline. Support for more CI providers is coming soon.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-33" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'continuous-testing' ? 'active' : ''"><div class=multi-plan data-plan-count=4><h2 class=text-md-center id=continuous-testing><a class=text-black>Continuous Testing</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Fast, codeless, and reliable testing that helps you ship features with confidence</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['SYNTHETICS-10K'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="API Testing">API Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SYNTHETICS-10K'] ? pricing[region]['SYNTHETICS-10K'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per 10K test runs, per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Test API endpoints and workflows</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Easily configure and run single or multistep API tests</p></li><li><p class="small fw-semibold">Globally managed locations</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SYNTHETICS-10K'] ? pricing[region]['SYNTHETICS-10K'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: API Testing" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['SYNTHETICS-1K'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Browser Testing">Browser Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SYNTHETICS-1K'] ? pricing[region]['SYNTHETICS-1K'].annual_cost : ''">12</span><div class=price-helper-wrapper><span class="price-helper small">Per thousand test runs,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Provide the best end-user experiences</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Record tests without code</p></li><li><p class="small fw-semibold">Intelligent, self-healing tests</p></li><li><p class="small fw-semibold">Step-by-step screenshots and error reporting</p></li><li><p class="small fw-semibold">Globally managed locations</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SYNTHETICS-1K'] ? pricing[region]['SYNTHETICS-1K'].on_demand_cost : ''">18</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Browser Testing" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['CI-MOBILE-APP-TEST'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Mobile App Testing">Mobile App Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CI-MOBILE-APP-TEST'] ? pricing[region]['CI-MOBILE-APP-TEST'].annual_cost : ''">50</span><div class=price-helper-wrapper><span class="price-helper small">Per hundred test runs,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Proactively monitor your key business flows using real devices</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Record tests without code</p></li><li><p class="small fw-semibold">Run tests on real Android and iOS devices</p></li><li><p class="small fw-semibold">Intelligent, self-maintaining tasks</p></li><li><p class="small fw-semibold">View screenshots and front-end errors for every step</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CI-MOBILE-APP-TEST'] ? pricing[region]['CI-MOBILE-APP-TEST'].on_demand_cost : ''">72</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Mobile App Testing" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12
add-on-row" x-data="{custom: false}" :class="pricing[region]['CI-APP-TEST'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><i class="icon-plus-2 text-center"></i><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Continuous Testing (add-on)">Continuous Testing (add-on)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CI-APP-TEST'] ? pricing[region]['CI-APP-TEST'].annual_cost : ''">79</span><div class=price-helper-wrapper><span class="price-helper small">Per additional parallelization,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Increase the speed of your test runs in the CI</p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Run multiple tests at the same time across your test environments to expedite release cycles and reduce test durations</p></li><li><p class="small fw-semibold">Analyze tests across your pipelines in the Synthetic Monitoring & Continuous Testing Explorer and search using facets on test durations, commit author, pipeline, and more</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CI-APP-TEST'] ? pricing[region]['CI-APP-TEST'].on_demand_cost : ''">114</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Continuous Testing (add-on)" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Full stack visibility with APM integration</p></li><li class=mb-1><p class=font-18>Pivot to related metrics, traces, and logs</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=continuous-testing-common-questions><a class=text-black href=#continuous-testing-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=continuous-testing-what-is-continuous-testing><a class=text-black href=#continuous-testing-what-is-continuous-testing>What is Continuous Testing?</a></dt><dd class=ps-0><p>Datadog <a href=https://www.datadoghq.com/product/continuous-testing/>Continuous Testing</a> is a comprehensive toolkit in the development cycle that offers integration and end-to-end testing with codeless test setup, self-healing capability, and seamless integration with CI providers (GitHub Actions, Azure DevOps, CircleCI, GitLab, and Jenkins) and collaboration tools to help you ship high-quality features to your users quickly.</p><p>Running tests in your CI/CD pipelines today is included with your API and Browser Testing test runs, and tests will run sequentially (one after another). If you would like to increase the speed of testing in your CI/CD pipelines, you can purchase additional Parallel Testing speed (parallelization), which makes some tests run at the same time.</p><p>For example, 1 Parallel Testing additional speed offers an additional parallel slot, allowing you to run 2 tests in parallel; 2 Parallel Testing additional speed offers 2 additional parallel slots, allowing you to run 3 tests in parallel; and so on. This helps you run more tests in parallel (at the same time), and reduce the overall execution speed of your test suite.</p></dd><dt class="border-0 ps-0" id=continuous-testing-am-i-limited-to-a-certain-number-of-test-runs-based-on-my-additional-parallelization><a class=text-black href=#continuous-testing-am-i-limited-to-a-certain-number-of-test-runs-based-on-my-additional-parallelization>Am I limited to a certain number of test runs based on my additional parallelization?</a></dt><dd class=ps-0><p>No. With Parallel Testing, you can run as many tests as you need in your CI/CD pipelines. Parallelization ensures you can run more of those tests at the same time, and ultimately reduce the duration of testing in your CI/CD pipelines.</p><p>For example, if you want to run 100 tests in a CI pipeline and each test takes 10 seconds to run:</p><ul><li>WITHOUT parallelization, your tests will run sequentially and your pipeline will take roughly <strong>17 minutes to complete.</strong></li><li>WITH parallelization, if you purchase (for example) an additional speed of 4 Parallel Testing, your 100 tests will run over a total of 5 parallel slots, and your pipeline will now take roughly <strong>3 minutes to complete.</strong></li></ul><p><strong>Note:</strong> In both cases, your 100 test runs will contribute to your API or Browser Testing test run quotas.</p></dd><dt class="border-0 ps-0" id=continuous-testing-can-i-reuse-my-synthetic-tests-that-i-use-to-monitor-my-production-environments><a class=text-black href=#continuous-testing-can-i-reuse-my-synthetic-tests-that-i-use-to-monitor-my-production-environments>Can I reuse my Synthetic tests that I use to monitor my production environments?</a></dt><dd class=ps-0>Yes. With Parallel Testing, you can use the same Synthetic tests you have configured for production monitoring across all of your staging, QA, and pre-production environments. Through variable overrides and custom configuration values, you can benefit from one test throughout your entire software development lifecycle.</dd><dt class="border-0 ps-0" id=continuous-testing-what-are-parallel-tests><a class=text-black href=#continuous-testing-what-are-parallel-tests>What are parallel tests?</a></dt><dd class=ps-0><p>Parallel tests are tests that run simultaneously in your continuous integration and delivery pipelines to ensure that you can:</p><ul><li>Reduce pipeline duration and ship new features faster</li><li>Increase development confidence and speed of delivery</li><li>Have complete test coverage and reduce the volume of production-breaking bugs from reaching your codebase</li></ul><p>As an example, if you needed to run 60 tests and each test took one minute to run, it would take you one hour to run those tests sequentially. However, running those tests in parallel with a parallelization value of 60, you could run all your tests at the same time and within one minute, saving you 59 minutes to tackle other business-critical tasks. That's the power of Parallel Testing.</p></dd><dt class="border-0 ps-0" id=continuous-testing-can-i-see-the-full-trace-of-a-test-if-i-also-use-datadog-apm><a class=text-black href=#continuous-testing-can-i-see-the-full-trace-of-a-test-if-i-also-use-datadog-apm>Can I see the full trace of a test if I also use Datadog APM?</a></dt><dd class=ps-0>Yes! If you instrument your services with APM, you will have a complete 360-degree visibility into your applications and services—from your frontend user experience right through to your backend trace. Find more information <a href=https://docs.datadoghq.com/synthetics/apm/#overview>here</a>.</dd><dt class="border-0 ps-0" id=continuous-testing-what-counts-as-a-browser-test-run><a class=text-black href=#continuous-testing-what-counts-as-a-browser-test-run>What counts as a browser test run?</a></dt><dd class=ps-0>Each simulation of a web transaction (up to 25 steps) counts as a single browser test run. A single test containing 50 steps would count as two test runs on each execution. For example, running a 60-step test (three test runs) every 15 minutes from five different locations and two different devices equates to 120 test runs in one hour.</dd><dt class="border-0 ps-0" id=continuous-testing-how-do-subtests-count-toward-billing><a class=text-black href=#continuous-testing-how-do-subtests-count-toward-billing>How do subtests count toward billing?</a></dt><dd class=ps-0>Subtests are simply a set of steps within a browser test. Therefore, we count a subtest as part of the overall browser test execution. For example, if you set up a browser test with only three subtests and each subtest had five steps, that would amount to a total of 15 steps, or one browser test run.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-35" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'test-optimization' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=test-optimization><a class=text-black>Test Optimization</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Monitor, debug, and accelerate every test suite across your entire CI environment</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['TES-VIS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['TES-VIS'] ? pricing[region]['TES-VIS'].annual_cost : ''">20</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Test Optimization" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Detect tests that fail or slow down your CI pipelines</p></li><li><p class=m-0>Catch and prevent flaky tests from being merged</p></li><li><p class=m-0>Lower CI costs through improved testing efficiency</p></li><li><p class=m-0>Improve testing quality and developer productivity</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['TES-VIS'] ? pricing[region]['TES-VIS'].on_demand_cost : ''">29</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Test Optimization" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Automatic detection of flaky tests and performance regressions</p></li><li class="list-item mb-1"><p class=font-18>Flaky test full lifecycle management</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Test Impact Analysis that skips tests irrelevant to a code change</p></li><li class="list-item mb-1"><p class=font-18>Granular visibility into test performance with distributed tracing and stack traces</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=test-optimization-common-questions><a class=text-black href=#test-optimization-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=test-optimization-how-do-you-define-a-committer><a class=text-black href=#test-optimization-how-do-you-define-a-committer>How do you define a committer?</a></dt><dd class=ps-0>A committer means an active Git committer; they are identified through their Git author email address. A committer is counted towards billing if they commit at least 3 times in a given month.</dd><dt class="border-0 ps-0" id=test-optimization-can-i-purchase-more-than-one-software-delivery-plan-for-my-team><a class=text-black href=#test-optimization-can-i-purchase-more-than-one-software-delivery-plan-for-my-team>Can I purchase more than one software delivery plan for my team?</a></dt><dd class=ps-0>Yes, customers can purchase a combination of software delivery plans. For example, for a team of 10, you can have 10 committers billed for CI Visibility and 5 committers billed for Test Optimization.</dd><dt class="border-0 ps-0" id=test-optimization-how-do-you-define-a-span><a class=text-black href=#test-optimization-how-do-you-define-a-span>How do you define a span?</a></dt><dd class=ps-0>Every individual test run is considered a span in Test Optimization.</dd><dt class="border-0 ps-0" id=test-optimization-how-many-spans-are-a-hrefpricingallotmentsallotteda><a class=text-black href=#test-optimization-how-many-spans-are-a-hrefpricingallotmentsallotteda>How many spans are <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a>?</a></dt><dd class=ps-0>1,000,000 spans per committer per month or 1,370 spans per committer per hour (both summed across all Test Optimization committers). Additional test spans can be purchased at $<span x-text="pricing[region]['TEST-SPA-VIS'] ? pricing[region]['TEST-SPA-VIS'].month_to_month_cost : ''">3</span> per million spans per month.</dd><dt class="border-0 ps-0" id=test-optimization-what-is-the-span-retention-period><a class=text-black href=#test-optimization-what-is-the-span-retention-period>What is the span retention period?</a></dt><dd class=ps-0>Test spans are retained for 3 months.</dd><dt class="border-0 ps-0" id=test-optimization-can-i-modify-the-span-retention-period><a class=text-black href=#test-optimization-can-i-modify-the-span-retention-period>Can I modify the span retention period?</a></dt><dd class=ps-0>No, the span retention period cannot be modified.</dd><dt class="border-0 ps-0" id=test-optimization-what-ci-providers-does-test-optimization-support><a class=text-black href=#test-optimization-what-ci-providers-does-test-optimization-support>What CI providers does Test Optimization support?</a></dt><dd class=ps-0>Test Optimization is compatible with any CI provider(not limited to those supported by CI Visibility).</dd><dt class="border-0 ps-0" id=test-optimization-what-languages-does-test-optimization-support-for-tests><a class=text-black href=#test-optimization-what-languages-does-test-optimization-support-for-tests>What languages does Test Optimization support for tests?</a></dt><dd class=ps-0>Test Optimization directly supports .NET, Java, JavaScript, Python, Swift, and Ruby. Other languages and test frameworks are supported by using JUnit xml.</dd><dt class="border-0 ps-0" id=test-optimization-how-does-test-impact-analysis-identify-which-tests-to-skip><a class=text-black href=#test-optimization-how-does-test-impact-analysis-identify-which-tests-to-skip>How does Test Impact Analysis identify which tests to skip?</a></dt><dd class=ps-0>Datadog automatically collects which files are covered by any given test. Based on the files that have been modified in any given code commit, we skip all irrelevant tests. <a href=https://docs.datadoghq.com/intelligent_test_runner/how_it_works/>Learn more</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-36" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'app-builder' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=app-builder><a class=text-black>App Builder</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Custom apps that integrate in your monitoring stack to accelerate remediation tasks and reduce errors</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['PUBLISHED-APP'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['PUBLISHED-APP'] ? pricing[region]['PUBLISHED-APP'].annual_cost : ''">35</span><div class=price-helper-wrapper><span class="price-helper small">per published app<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Build apps using a low code drag-and-drop interface with blueprints and over 1,750+ out-of-the box actions to handle complex tasks and take action without having to leave Datadog</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['PUBLISHED-APP'] ? pricing[region]['PUBLISHED-APP'].on_demand_cost : ''">51</span> on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Quickly build production ready internal ops tools without front end code knowledge</p></li><li class="list-item mb-1"><p class=font-18>Drag and drop 20+ UI components and customize your logic using custom JavaScript code.</p></li><li class="list-item mb-1"><p class=font-18>Integrate with a catalog of 1,750+ out-of-the-box action integration. Maintain the flexibility to interact with any rest API using HTTP requests. Ability to communicate with both cloud and on-prem resources</p></li><li class="list-item mb-1"><p class=font-18>Get value instantly with a library of pre-configured blueprints solving common use cases in DevOps, security, software delivery, project management and more</p></li><li class="list-item mb-1"><p class=font-18>Consolidate all your company’s monitoring data, tool development, and observability response in one place</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Empower teams with self-serve apps so they can proactively take action before issues arise</p></li><li class="list-item mb-1"><p class=font-18>Save time with minimized context switching by troubleshooting all within the same interface</p></li><li class="list-item mb-1"><p class=font-18>Embed apps into your existing monitoring stack as widgets to Datadog Dashboards</p></li><li class="list-item mb-1"><p class=font-18>Configure viewing and editing permissions of apps with granular role-based access control (RBAC)</p></li><li class="list-item mb-1"><p class=font-18>Gain visibility into every app with audit logging and usage tracking</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=app-builder-common-questions><a class=text-black href=#app-builder-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=app-builder-can-i-use-the-product-before-i-commit-to-it><a class=text-black href=#app-builder-can-i-use-the-product-before-i-commit-to-it>Can I use the product before I commit to it?</a></dt><dd class=ps-0>Yes, App Builder is already available in your account and it is free to start using. App Builder becomes paid once you publish an app.</dd><dt class="border-0 ps-0" id=app-builder-what-is-a-published-app><a class=text-black href=#app-builder-what-is-a-published-app>What is a published app?</a></dt><dd class=ps-0>When you create a new app it is “unpublished” even after you save it. Once you are ready to distribute your app to your teams or embed it in Datadog (e.g. Dashboards) you will need to publish it. Once your app is in a “published” status, it will become paid.</dd><dt class="border-0 ps-0" id=app-builder-can-i-unpublish-an-app><a class=text-black href=#app-builder-can-i-unpublish-an-app>Can I unpublish an app?</a></dt><dd class=ps-0>Yes, you can easily unpublish an app at any time. Once your app is unpublished it will no longer be paid.</dd><dt class="border-0 ps-0" id=app-builder-do-i-need-to-purchase-other-datadog-products-to-use-app-builder><a class=text-black href=#app-builder-do-i-need-to-purchase-other-datadog-products-to-use-app-builder>Do I need to purchase other Datadog products to use App Builder?</a></dt><dd class=ps-0>No, you can use App Builder without purchasing any other Datadog products. Having all your monitoring and security alerts and insights in one place is something we encourage for comprehensive visibility.</dd><dt class="border-0 ps-0" id=app-builder-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-app-builder-to-my-plan><a class=text-black href=#app-builder-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-app-builder-to-my-plan>I am an existing Infrastructure Monitoring customer. Can I add App Builder to my plan?</a></dt><dd class=ps-0>Yes, you can add App Builder to your existing plan and it will show up on your plan as a different SKU. Reach out to your Customer Success Manager for further details.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-38" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'incident-response' ? 'active' : ''"><div class=multi-plan data-plan-count=3><h2 class=text-md-center id=incident-response><a class=text-black>Incident Response</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Manage alerts and incidents alongside rich, contextual observability data</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['ON-CALL'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=On-Call>On-Call</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Standalone</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['ON-CALL'] ? pricing[region]['ON-CALL'].annual_cost : ''">20</span><div class=price-helper-wrapper><span class="price-helper small">Per seat,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Modern on-call management</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Unlimited on-call schedules, escalations, and routing rules</p></li><li><p class="small fw-semibold">Pages via SMS, voice call, mobile push notification, or email</p></li><li><p class="small fw-semibold">Analytics for service health and team performance</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['ON-CALL'] ? pricing[region]['ON-CALL'].on_demand_cost : ''">29</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: On-Call" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['INCIDENT-MANAGEMENT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Incident Management">Incident Management</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Standalone</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['INCIDENT-MANAGEMENT'] ? pricing[region]['INCIDENT-MANAGEMENT'].annual_cost : ''">30</span><div class=price-helper-wrapper><span class="price-helper small">Per seat,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>End-to-end incident coordination</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Automated incident timelines</p></li><li><p class="small fw-semibold">Integrations with Slack, Jira, and more</p></li><li x-show=!fedRegionSelected><p class="small fw-semibold">Unlimited number of status pages with custom domains</p></li><li><p class="small fw-semibold">One-click AI-generated postmortems and follow-up tasks</p></li><li><p class="small fw-semibold">Unlimited incident automations</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['INCIDENT-MANAGEMENT'] ? pricing[region]['INCIDENT-MANAGEMENT'].on_demand_cost : ''">43.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Incident Management" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4
addon" x-data="{custom: false}" :class="pricing[region]['ENT-INCIDENT-RESPONSE'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Incident Response">Incident Response</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Bundle</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['ENT-INCIDENT-RESPONSE'] ? pricing[region]['ENT-INCIDENT-RESPONSE'].annual_cost : ''">40</span><div class=price-helper-wrapper><span class="price-helper small">Per seat,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>End-to-end remediation</p><p class="small fw-semibold">Includes all features in On-Call and Incident Management</p><ul class="dashed mb-1 align-self-center" style=line-height:1></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['ENT-INCIDENT-RESPONSE'] ? pricing[region]['ENT-INCIDENT-RESPONSE'].on_demand_cost : ''">58</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Incident Response" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4" x-show=!fedRegionSelected><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary" x-show=!fedRegionSelected></div><div class="row mb-4 features" x-show=!fedRegionSelected><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">On-Call
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Standalone</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Incident Management
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Standalone</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Incident Response
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Bundle</span></h4></div><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>On-call schedules</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Escalation policies</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Routing rules</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Pages (SMS, Voice call, Mobile push notification, or E-Mail)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>API & webhooks</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Out-of-the-box on-call analytics</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Chat integrations (Slack, Microsoft Teams, Google Chat)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Incident declaration (via pages, signals, dashboards, 3rd-party apps)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Incident timeline</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Incident roles</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Incident tasks</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Single-click Postmortems with AI</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Out-of-the-box incident analytics</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Bits AI for Slack</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Conference integrations (Zoom, Microsoft Teams, Google Chat)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Ticketing integrations (Jira Software, ServiceNow)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Unlimited number of status pages</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Custom domains for status pages</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Unlimited incident automations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=incident-response-common-questions><a class=text-black href=#incident-response-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=incident-response-what-is-a-seat x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-is-a-seat>What is a seat?</a></dt><dd class=ps-0 x-show=!fedRegionSelected><p>A <strong>Seat</strong> is a license for a user to actively participate in the on-call or incident management process in Datadog.</p><ul><li>Any user can <strong>claim a seat</strong> for On-Call and Incident Management or Incident Response as they perform actions that require them.</li><li>Billing admins can also <strong>assign seats ahead of time</strong> to simplify the process for their teams.</li></ul><p>For more information on how seats are <strong>assigned, claimed, and billed</strong>, see the <a href=https://docs.datadoghq.com/account_management/billing/incident_response/ target=_blank rel="noopener noreferrer" title="Incident Response billing documentation" aria-label="Incident Response billing documentation">Incident Response billing documentation</a>.</p></dd><dt class="border-0 ps-0" id=incident-response-do-users-get-double-charged-if-they-are-in-more-than-one-org x-show=!fedRegionSelected><a class=text-black href=#incident-response-do-users-get-double-charged-if-they-are-in-more-than-one-org>Do users get double charged if they are in more than one org?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>No, we charge based on unique seats across the organizations where users have accounts.</dd><dt class="border-0 ps-0" id=incident-response-what-is-an-on-call-seat x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-is-an-on-call-seat>What is an On-Call seat?</a></dt><dd class=ps-0 x-show=!fedRegionSelected><p>A user needs an <strong>On-Call seat</strong> if they:</p><ul><li>Are part of an on-call schedule.</li><li>Are included in an escalation policy.</li><li>Have set up notification preferences to receive pages.</li></ul><p>Note that for On-Call only:</p><ul><li>Anyone can view existing pages, escalation policies, teams, and schedules without a seat.</li></ul></dd><dt class="border-0 ps-0" id=incident-response-what-is-an-incident-management-seat x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-is-an-incident-management-seat>What is an Incident Management Seat?</a></dt><dd class=ps-0 x-show=!fedRegionSelected><p>A user needs an <strong>Incident Management seat</strong> if they:</p><ul><li>Modify an incident (for example, update severity).</li><li>Add a comment, graph, or link to an incident timeline.</li></ul><p>Note that for Incident Management only:</p><ul><li>The actions above require a seat whether they are performed in the Datadog UI or through integrations such as Microsoft Teams or Slack.</li><li>Anyone can create incidents, view incidents, and join incident channels without a seat.</li></ul></dd><dt class="border-0 ps-0" id=incident-response-what-is-an-incident-response-seat x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-is-an-incident-response-seat>What is an Incident Response Seat?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>If your organization has committed to the Incident Response SKU, any user who meets the On-Call or Incident Management criteria can claim or be assigned an <strong>Incident Response seat</strong>.</dd><dt class="border-0 ps-0" id=incident-response-in-what-countries-do-we-support-telephony-features x-show=!fedRegionSelected><a class=text-black href=#incident-response-in-what-countries-do-we-support-telephony-features>In what countries do we support telephony features?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Our list of available countries is extensive and spans across the globe. We continue to grow in availability zones daily. If your country is not supported, you can still be paged through the Datadog Mobile App.</dd><dt class="border-0 ps-0" id=incident-response-are-telephony-costs-included-in-pricing x-show=!fedRegionSelected><a class=text-black href=#incident-response-are-telephony-costs-included-in-pricing>Are telephony costs included in pricing?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Yes, telephony costs are included in the current pricing structure.</dd><dt class="border-0 ps-0" id=incident-response-is-there-a-limit-on-the-number-of-span-x-textfedregionselected--incidents-or-postmortems--pages-schedules-escalation-policies-incidents-or-postmortemspages-schedules-escalation-policies-incidents-or-postmortemsspan-that-a-user-or-org-can-create><a class=text-black href=#incident-response-is-there-a-limit-on-the-number-of-span-x-textfedregionselected--incidents-or-postmortems--pages-schedules-escalation-policies-incidents-or-postmortemspages-schedules-escalation-policies-incidents-or-postmortemsspan-that-a-user-or-org-can-create>Is there a limit on the number of <span x-text="fedRegionSelected ? 'incidents or postmortems' : 'pages, schedules, escalation policies, incidents, or postmortems'">pages, schedules, escalation policies, incidents, or postmortems</span> that a user or org can create?</a></dt><dd class=ps-0>No, seat holders have access to create unlimited <span x-text="fedRegionSelected ? 'incidents and postmortems' : 'pages, schedules, escalation policies, incidents, and postmortems'">pages, schedules, escalation policies, incidents, and postmortems</span>.</dd><dt class="border-0 ps-0" id=incident-response-what-external-tools-does-datadog-incident-response-integrate-with x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-external-tools-does-datadog-incident-response-integrate-with>What external tools does Datadog Incident Response integrate with?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Native integrations are available for Slack, MS Teams, Jira, ServiceNow, Zoom, and Status Page. Check out our <a href=https://docs.datadoghq.com/service_management/incident_management/incident_settings/integrations/>Docs</a> for more information.</dd><dt class="border-0 ps-0" id=incident-response-can-i-use-datadog-incident-management-without-using-other-datadog-products><a class=text-black href=#incident-response-can-i-use-datadog-incident-management-without-using-other-datadog-products>Can I use Datadog Incident Management without using other Datadog products?</a></dt><dd class=ps-0>Datadog Incident Management can be used as a standalone solution for your team, or as a central in-app hub to accelerate remediation and streamline existing workflows in Datadog.</dd><dt class="border-0 ps-0" id=incident-response-can-i-use-datadog-incident-response-without-using-other-datadog-products x-show=!fedRegionSelected><a class=text-black href=#incident-response-can-i-use-datadog-incident-response-without-using-other-datadog-products>Can I use Datadog Incident Response without using other Datadog products?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Datadog Incident Response can be used as a standalone solution for your team, or as a central in-app hub to accelerate remediation and streamline existing workflows in Datadog.</dd><dt class="border-0 ps-0" id=incident-response-what-are-incident-automations x-show=!fedRegionSelected><a class=text-black href=#incident-response-what-are-incident-automations>What are Incident Automations?</a></dt><dd class=ps-0 x-show=!fedRegionSelected>Incident Automations are Workflow Automation executions triggered by incidents in Datadog. These automations can be triggered manually, on a schedule, or automatically, in response to events in Incident Management — such as incident status changes or incident timeline updates. Read our <a href=https://docs.datadoghq.com/actions/workflows/ title=Docs target=_blank rel="noopener noreferrer" aria-label=Docs>Docs</a> for more information.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-39" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'event-management' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=event-management><a class=text-black>Event Management</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Transform alert fatigue into actionable insights and accelerate remediation with automated event correlation</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['EVT-MGT-CORRELATION'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['EVT-MGT-CORRELATION'] ? pricing[region]['EVT-MGT-CORRELATION'].annual_cost : ''">0.10</span><div class=price-helper-wrapper><span class="price-helper small">Per event evaluated by a correlation pattern<br>(Datadog generated events are free)</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Aggregate, and intelligently correlate alerts from Datadog and third-party tools to reduce alert fatigue, and reduce time discovery and resolution</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['EVT-MGT-CORRELATION'] ? pricing[region]['EVT-MGT-CORRELATION'].on_demand_cost : ''">0.14</span> on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Reduce alert fatigue and ticket volume with correlation and deduplication</p></li><li class="list-item mb-1"><p class=font-18>Aggregate alerts and change events from anywhere into a case or 3rd party ITSM tool</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Jump-start your triaging in the same view with more observability context from related metrics and logs data</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=event-management-common-questions><a class=text-black href=#event-management-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=event-management-how-is-evaluated-by-a-correlation-pattern-defined><a class=text-black href=#event-management-how-is-evaluated-by-a-correlation-pattern-defined>How is “evaluated by a correlation pattern” defined?</a></dt><dd class=ps-0>Once a correlation pattern is created, events will start matching based on the criteria defined. <strong>Note:</strong> it is not based on ingestion.</dd><dt class="border-0 ps-0" id=event-management-what-are-datadog-generated-events><a class=text-black href=#event-management-what-are-datadog-generated-events>What are Datadog generated events?</a></dt><dd class=ps-0>Examples of events generated from Datadog include those from, Monitor Alerts, Error Tracking, Incidents, etc. Only 3rd party events ingested from either custom solutions or other tools will be charged for.</dd><dt class="border-0 ps-0" id=event-management-do-i-need-to-purchase-other-datadog-products-to-use-event-management><a class=text-black href=#event-management-do-i-need-to-purchase-other-datadog-products-to-use-event-management>Do I need to purchase other Datadog products to use Event Management?</a></dt><dd class=ps-0>No, you can use Event Management without purchasing any other Datadog products. You have the option to ingest events from 3rd parties either via integration, email and API. Having all your monitoring and security alerts and insights in one place is something we encourage for comprehensive visibility.</dd><dt class="border-0 ps-0" id=event-management-i-am-an-existing-customer-can-i-add-event-management-to-my-plan><a class=text-black href=#event-management-i-am-an-existing-customer-can-i-add-event-management-to-my-plan>I am an existing customer. Can I add Event Management to my plan?</a></dt><dd class=ps-0>Yes, you can add Event Management to your existing plan. Reach out to your Customer Success Manager for further details</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-42" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'workflow-automation' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=workflow-automation><a class=text-black>Workflow Automation</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Automate processes to go from monitoring to taking action</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['WORKFLOW-WORKFLOW'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['WORKFLOW-WORKFLOW'] ? pricing[region]['WORKFLOW-WORKFLOW'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per 100 Workflow Executions,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Build and trigger automated workflows directly from your observability data</p></li><li><p class=m-0>Get started fast with 40+ pre-built blueprints across DevOps and Security use cases</p></li><li><p class=m-0>Stay in control of your automation with humans in the loop</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['WORKFLOW-WORKFLOW'] ? pricing[region]['WORKFLOW-WORKFLOW'].on_demand_cost : ''">14</span> on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Automatically trigger workflows from monitors and security signals, and dashboards</p></li><li class="list-item mb-1"><p class=font-18>Easy-to-use workflow builder with 300+ OOTB actions</p></li><li class="list-item mb-1"><p class=font-18>40+ pre-built blueprints covering essential processes across security, DevOps, incident management and more</p></li><li class="list-item mb-1"><p class=font-18>Build and customize complex workflows with multi-step automation using logic operators, branching, conditions, iterations and more</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Enrich workflows with context from alerts and security signals</p></li><li class="list-item mb-1"><p class=font-18>Bring humans into the loop with interactive workflows</p></li><li class="list-item mb-1"><p class=font-18>Granular role-based access control (RBAC) for workflows</p></li><li class="list-item mb-1"><p class=font-18>Keep track of executions with detailed workflow auditing</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=workflow-automation-common-questions><a class=text-black href=#workflow-automation-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=workflow-automation-how-is-an-execution-defined><a class=text-black href=#workflow-automation-how-is-an-execution-defined>How is an execution defined?</a></dt><dd class=ps-0>An execution refers to the start of a series of steps within the workflow. For instance, if a workflow is triggered five times, there will be five executions recorded.</dd><dt class="border-0 ps-0" id=workflow-automation-do-i-need-to-purchase-other-datadog-products-to-use-workflow-automation><a class=text-black href=#workflow-automation-do-i-need-to-purchase-other-datadog-products-to-use-workflow-automation>Do I need to purchase other Datadog products to use Workflow Automation?</a></dt><dd class=ps-0>Having all your monitoring and security alerts and insights in one place is something we encourage for comprehensive visibility. You can use Workflow Automation without purchasing any other Datadog products. You have the option to manually trigger your workflows directly from the Workflow console or schedule them to run automatically.</dd><dt class="border-0 ps-0" id=workflow-automation-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-workflow-automation-to-my-plan><a class=text-black href=#workflow-automation-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-workflow-automation-to-my-plan>I am an existing Infrastructure Monitoring customer. Can I add Workflow Automation to my plan?</a></dt><dd class=ps-0>Yes, you can add Workflow Automation to your existing plan. Your billing per host won’t be affected, you only be charged per execution of your workflows. Reach out to your Customer Success Manager for further details</dd><dt class="border-0 ps-0" id=workflow-automation-what-are-workflow-execution-limits><a class=text-black href=#workflow-automation-what-are-workflow-execution-limits>What are Workflow execution limits?</a></dt><dd class=ps-0><ul class=dashed-list><li>Maximum execution time for a workflow: 24 hours</li><li>Maximum steps in a workflow: 100</li></ul></dd><dt class="border-0 ps-0" id=workflow-automation-are-there-other-billing-options><a class=text-black href=#workflow-automation-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>We can customize billing plans to meet your needs. For a detailed explanation of billing, please reach out to your Customer Success Manager</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-43" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'error-tracking' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=error-tracking><a class=text-black>Error Tracking</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Group and triage error events across web, mobile, and backend applications</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{
             open: false,
             custom: false,
             retention: '50k errors',
             selected_retention_pricing_data_key: '',
             dropdownStyle: {},
             positionDropdown() {
                 const button = this.$refs.dropdownButton;
                 const buttonRect = button.getBoundingClientRect();
                 const parentRect = this.$el.getBoundingClientRect();

                 this.dropdownStyle = {
                     position: 'absolute',
                     top: `${buttonRect.bottom - parentRect.top}px`,
                     left: `${buttonRect.left - parentRect.left}px`
                 };
             }
         }" x-init="selected_retention_pricing_data_key = 'ERR-TRACKING-50K'" x-effect="if (open) positionDropdown()" :class="pricing[region][selected_retention_pricing_data_key] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><a class="small fw-semibold text-uppercase align-self-center d-block" role=button type=button :aria-expanded=open @click="open = !open" aria-label="Pricing options" aria-haspopup=true x-ref=dropdownButton :data-dd-action-name="open ? 'card: dropdown: close' : 'card: dropdown: open'"><span class=text-content x-text=retention>50k errors</span>
<i class=icon-down-carrot-normal style=font-size:12px></i></a><div class=span-dropdown aria-label="Pricing options" :aria-expanded=open x-show=open @click.outside="open = false" x-ref=dropdownMenu x-bind:style=dropdownStyle><a class=dropdown-item href=# @click.prevent="retention = '50k errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-50K'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 50k errors">50k errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '100k errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-100K'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 100k errors">100k errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '300k errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-300K'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 300k errors">300k errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '500k errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-500K'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 500k errors">500k errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '1M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-1M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 1M errors">1M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '3M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-3M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 3M errors">3M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '5M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-5M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 5M errors">5M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '10M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-10M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 10M errors">10M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '15M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-15M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 15M errors">15M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '20M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-20M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 20M errors">20M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '25M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-25M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 25M errors">25M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '30M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-30M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 30M errors">30M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '35M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-35M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 35M errors">35M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '40M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-40M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 40M errors">40M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '45M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-45M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 45M errors">45M errors</a>
<a class=dropdown-item href=# @click.prevent="retention = '50M errors'; selected_retention_pricing_data_key = 'ERR-TRACKING-50M'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 50M errors">50M errors</a></div><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].annual_cost : ''">25</span><div class=price-helper-wrapper><span class="price-helper small">per month* **</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: Error Tracking">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Error Tracking" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Automatically group similar errors into issues representing bugs</p></li><li><p class=m-0>Prioritize the most important issues based on count, recency, or impact</p></li><li><p class=m-0>Resolve errors faster with custom monitors and one-click pivot into Git and IDEs</p></li><li><p class=m-0>Investigate anomalistic tags surfaced by Watchdog Insights</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Error Tracking is included for APM traces and RUM events at no additional cost.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].on_demand_cost : ''">36</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Error Tracking" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Prioritized list of all errors, automatically grouped into issues</p></li><li class="list-item mb-1"><p class=font-18>Custom alerts on new issues</p></li><li class="list-item mb-1"><p class=font-18>Default and custom tags for simple search and analytics</p></li><li class="list-item mb-1"><p class=font-18>Watchdog Insights: Anomalistic tags associated with specific issues</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Error distribution over time or by environment, version, URL, and other tags</p></li><li class="list-item mb-1"><p class=font-18>Source code and IDE integrations</p></li><li class="list-item mb-1"><p class=font-18>Ability to mute noisy issues or mark others as open, ignored, or resolved</p></li><li class="list-item mb-1"><p class=font-18>Error triaging in Datadog Case Management and Incident Management</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Full-stack visibility</p></li><li class=mb-1><p class=font-18>Seamless correlation with related sessions in RUM and distributed traces in APM</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support (chat and email)</p></li><li class=mb-1><p class=font-18>Community forum and online docs</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=error-tracking-common-questions><a class=text-black href=#error-tracking-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=error-tracking-how-does-datadog-error-tracking-work><a class=text-black href=#error-tracking-how-does-datadog-error-tracking-work>How does Datadog Error Tracking work?</a></dt><dd class=ps-0>Error Tracking automatically groups uncaught exceptions found in certain error events (from APM traces, RUM sessions, standalone frontend errors, and logs) across frontend and backend applications into issues with rich debug context.</dd><dt class="border-0 ps-0" id=error-tracking-how-is-error-tracking-billed><a class=text-black href=#error-tracking-how-is-error-tracking-billed>How is Error Tracking billed?</a></dt><dd class=ps-0><p>Error Tracking is billed according to your monthly volume of errors. Monthly error volumes below 50k errors will be billed at the flat rate of $<span x-text=pricing[region].err_tracking_tier_1.annual_cost>25</span> per month or $<span x-text=pricing[region].err_tracking_tier_1.on_demand_cost>36</span> on-demand. For monthly error volumes over 50k, the cost per 1,000 errors will be billed as follows:</p><table><tbody><tr><th>Error Tracking pricing tiers</th><th class=text-center>Annual<br>cost per 1k errors, per month</th><th class=text-center>Monthly<br>cost per 1k errors, per month</th><th class=text-center>On-Demand<br>cost per 1k errors, per month</th></tr><tr><th>> 50k - 100k errors</th><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_2.annual_cost>0.25</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_2.month_to_month_cost>0.30</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_2.on_demand_cost>0.38</span></td></tr><tr><th>> 100k - 500k errors</th><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_3.annual_cost>0.21</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_3.month_to_month_cost>0.25</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_3.on_demand_cost>0.32</span></td></tr><tr><th>> 500k - 10M errors</th><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_4.annual_cost>0.17</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_4.month_to_month_cost>0.20</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_4.on_demand_cost>0.26</span></td></tr><tr><th>> 10M - 20M errors</th><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_5.annual_cost>0.12</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_5.month_to_month_cost>0.14</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_5.on_demand_cost>0.22</span></td></tr><tr><th>> 20M+ errors</th><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_6.annual_cost>0.10</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_6.month_to_month_cost>0.12</span></td><td class=text-center>$<span x-text=pricing[region].err_tracking_tier_6.on_demand_cost>0.18</span></td></tr></tbody></table></dd><dt class="border-0 ps-0" id=error-tracking-which-errors-are-indexed-and-billed-for-error-tracking><a class=text-black href=#error-tracking-which-errors-are-indexed-and-billed-for-error-tracking>Which errors are indexed and billed for Error Tracking?</a></dt><dd class=ps-0>Standalone frontend errors collected outside of RUM sessions, standalone backend errors collected outside of APM traces, and errors originating from logs (with certain attributes) are billed for Error Tracking. To learn more about instrumenting Error Tracking and Error Tracking attributes <a href=https://docs.datadoghq.com/error_tracking/#supported-error-sources>view our documentation</a>.</dd><dt class="border-0 ps-0" id=error-tracking-can-i-filter-errors-eligible-for-error-tracking><a class=text-black href=#error-tracking-can-i-filter-errors-eligible-for-error-tracking>Can I filter errors eligible for Error Tracking?</a></dt><dd class=ps-0>Yes. You can use <a href=https://docs.datadoghq.com/error_tracking/manage_data_collection#rules>Error Tracking Rules</a> to include and exclude certain errors that are ingested and billed by Error Tracking. We also offer rate limiting capabilities to safeguard against unexpected costs by allowing you to set a budget, ensuring your bill remains predictable and under control. You can also view a rolling 24-hour volume estimate in-app.</dd><dt class="border-0 ps-0" id=error-tracking-which-programming-languages-does-error-tracking-support><a class=text-black href=#error-tracking-which-programming-languages-does-error-tracking-support>Which programming languages does Error Tracking support?</a></dt><dd class=ps-0>Browser Errors support JavaScript and TypeScript. Mobile Errors support Native iOS, Native Android, and React Native. Backend Errors support Java, NodeJS, .NET, Python, Ruby, Go, PHP, and C++.</dd><dt class="border-0 ps-0" id=error-tracking-im-an-existing-datadog-apm-andor-real-user-monitoring-rum-customer-do-i-need-to-pay-for-error-tracking><a class=text-black href=#error-tracking-im-an-existing-datadog-apm-andor-real-user-monitoring-rum-customer-do-i-need-to-pay-for-error-tracking>I’m an existing Datadog APM and/or Real User Monitoring (RUM) customer. Do I need to pay for Error Tracking?</a></dt><dd class=ps-0>No. Error Tracking is included for errors collected as part of APM traces and RUM sessions at no additional cost. Error Tracking for Logs requires the Log Management product with indexing.</dd><dt class="border-0 ps-0" id=error-tracking-is-this-available-in-all-regions><a class=text-black href=#error-tracking-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes. Error Tracking is available in all EU- and US-hosted accounts.</dd><dt class="border-0 ps-0" id=error-tracking-how-can-i-start-using-error-tracking><a class=text-black href=#error-tracking-how-can-i-start-using-error-tracking>How can I start using Error Tracking?</a></dt><dd class=ps-0>Visit the <a href=https://docs.datadoghq.com/error_tracking/>Error Tracking documentation</a> and start sending your <a href="https://docs.datadoghq.com/logs/error_tracking/backend?tab=serilog">backend</a> or <a href=https://docs.datadoghq.com/error_tracking/frontend>browser and mobile application</a> errors to Error Tracking. Error Tracking can be enabled in-app.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-46" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'product-analytics' ? 'active' : ''"><div class=multi-plan data-plan-count=2><h2 class=text-md-center id=product-analytics><a class=text-black>Product Analytics</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Deep visibility into product usage, user adoption, retention, and segmentation</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['PRODUCT-ANALYTICS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Product Analytics">Product Analytics</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['PRODUCT-ANALYTICS'] ? pricing[region]['PRODUCT-ANALYTICS'].annual_cost : ''">0.80</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 sessions,<br>per month on full traffic*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Turn user behavior into data-driven product decisions</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Understand user behavior across the entire journey with funnels, segments, and pathway diagrams.</p></li><li><p class="small fw-semibold">Boost adoption and revenue by identifying golden paths and key conversion drivers.</p></li><li><p class="small fw-semibold">Track long-term trends with data retention starting at 15 months to assess the lasting impact of product changes.</p></li><li><p class="small fw-semibold">Correlate user behavior with backend performance, mobile vitals, and frustration signals—all with a single SDK that simplifies setup and reduces engineering overhead.</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['PRODUCT-ANALYTICS'] ? pricing[region]['PRODUCT-ANALYTICS'].on_demand_cost : ''">1.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Product Analytics" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Session Replay">Session Replay</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? pricing[region]['RUM-SESSION-REPLAY-ADD-ON'].annual_cost : ''">2.50</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 sessions,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Unlock behavioral insights to inform product decisions with video-like replays</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Visualize the full user journey across web and mobile to identify drop-off points, optimize flows, and drive conversion.</p></li><li><p class="small fw-semibold">Validate hypotheses quickly with 30-day session replay retention and built-in privacy protections like input masking by default.</p></li><li><p class="small fw-semibold">Uncover UX opportunities by combining session replays with heatmaps to visualize engagement and behavior.</p></li><li><p class="small fw-semibold">Collaborate with full context by linking replays to funnels, retention, and product metrics for faster, aligned decision-making.</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? pricing[region]['RUM-SESSION-REPLAY-ADD-ON'].on_demand_cost : ''">3.60</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Session Replay" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=product-analytics-common-questions><a class=text-black href=#product-analytics-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=product-analytics-what-counts-as-a-session-in-product-analytics-pricing><a class=text-black href=#product-analytics-what-counts-as-a-session-in-product-analytics-pricing>What counts as a &ldquo;session&rdquo; in Product Analytics pricing?</a></dt><dd class=ps-0>Similar to Real User Monitoring, <a href=https://docs.datadoghq.com/glossary/#session>a session</a> is a continuous period of user interaction on your website or app, typically grouped by user activity and timeout thresholds. A session is a user journey on your web application. It expires after 15 minutes of inactivity and lasts up to 4 hours. For a detailed explanation of user sessions, please see our <a href=https://docs.datadoghq.com/account_management/billing/rum/>docs</a>.</dd><dt class="border-0 ps-0" id=product-analytics-is-product-analytics-available-for-both-browser-and-mobile-applications><a class=text-black href=#product-analytics-is-product-analytics-available-for-both-browser-and-mobile-applications>Is Product Analytics available for both Browser and Mobile Applications?</a></dt><dd class=ps-0>Yes – Product Analytics is available for Browser and Mobile Applications.</dd><dt class="border-0 ps-0" id=product-analytics-can-i-use-product-analytics-without-enabling-session-replay><a class=text-black href=#product-analytics-can-i-use-product-analytics-without-enabling-session-replay>Can I use Product Analytics without enabling Session Replay?</a></dt><dd class=ps-0>Yes—Product Analytics works independently, allowing you to analyze conversion, retention, and workflow metrics without recording visual replays. That said, pairing it with Session Replay gives you powerful visual context to see exactly why users drop off or struggle, making it easier to validate hypotheses and troubleshoot faster.</dd><dt class="border-0 ps-0" id=product-analytics-how-long-is-my-data-retained><a class=text-black href=#product-analytics-how-long-is-my-data-retained>How long is my data retained?</a></dt><dd class=ps-0>Behavioral data in Product Analytics is retained for a minimum of 15 months, so you can analyze long-term adoption and validate the lasting impact of product changes over time. By default, Session Replays will be retained for 30 days.</dd><dt class="border-0 ps-0" id=product-analytics-can-i-get-more-than-15-months-retention><a class=text-black href=#product-analytics-can-i-get-more-than-15-months-retention>Can I get more than 15 months retention?</a></dt><dd class=ps-0>Yes – please reach out to your dedicated Datadog account team for more information.</dd><dt class="border-0 ps-0" id=product-analytics-how-is-product-analytics-different-from-real-user-monitoring><a class=text-black href=#product-analytics-how-is-product-analytics-different-from-real-user-monitoring>How is Product Analytics different from Real User Monitoring?</a></dt><dd class=ps-0>RUM focuses on frontend performance—like load times and errors—while Product Analytics measures user behavior, including conversions, drop-offs, and feature adoption. Both use the same SDKs, but Product Analytics includes 15-month retention for behavioral data. They can be used separately or together for a complete view.</dd><dt class="border-0 ps-0" id=product-analytics-does-purchasing-product-analytics-increase-the-retention-period-for-session-replays-compared-to-rum-alone><a class=text-black href=#product-analytics-does-purchasing-product-analytics-increase-the-retention-period-for-session-replays-compared-to-rum-alone>Does purchasing Product Analytics increase the retention period for Session Replays compared to RUM alone?</a></dt><dd class=ps-0>No — Session Replays have a standard 30-day retention period whether accessed through RUM or Product Analytics. If you&rsquo;re interested in extending your replay retention, please reach out to your Datadog account team to discuss available options.</dd><dt class="border-0 ps-0" id=product-analytics-will-i-get-double-billed-on-session-replays-if-i-purchase-both-rum-and-product-analytics><a class=text-black href=#product-analytics-will-i-get-double-billed-on-session-replays-if-i-purchase-both-rum-and-product-analytics>Will I get double-billed on Session Replays if I purchase both RUM and Product Analytics?</a></dt><dd class=ps-0>No — Session Replays are only billed once, even if you&rsquo;re using them across both RUM and Product Analytics.</dd><dt class="border-0 ps-0" id=product-analytics-is-product-analytics-available-in-all-regions><a class=text-black href=#product-analytics-is-product-analytics-available-in-all-regions>Is Product Analytics available in all regions?</a></dt><dd class=ps-0>Product Analytics is available for all US-hosted and EU-hosted Datadog accounts. It is not yet supported on GovCloud, but we&rsquo;re actively working toward future availability.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-48" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'storage-management' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=storage-management><a class=text-black>Storage Management</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Eliminate unnecessary costs in your cloud object storage</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['INFRA-STORAGE-MGMT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['INFRA-STORAGE-MGMT'] ? pricing[region]['INFRA-STORAGE-MGMT'].annual_cost : ''">0.35</span><div class=price-helper-wrapper><span class="price-helper small">Per 1M objects monitored,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Storage Management" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Pinpoint cost drivers in your storage buckets</p></li><li><p class=m-0>Confidently move cold data to lower-cost storage classes</p></li><li><p class=m-0>Accelerate savings with granular recommendations</p></li><li><p class=m-0>Proactively detect and address anomalies</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['INFRA-STORAGE-MGMT'] ? pricing[region]['INFRA-STORAGE-MGMT'].on_demand_cost : ''">0.50</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Storage Management" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=storage-management-common-questions><a class=text-black href=#storage-management-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=storage-management-how-do-i-start-using-storage-management-for-s3><a class=text-black href=#storage-management-how-do-i-start-using-storage-management-for-s3>How do I start using Storage Management for S3?</a></dt><dd class=ps-0>You can start monitoring your S3 buckets by integrating your AWS account through the AWS integration. Once connected, Storage Management automatically displays your bucket-level insights. To unlock prefix-level visibility and recommendations, enable S3 Inventory and S3 Access Logs (<a href='https://docs.datadoghq.com/integrations/guide/storage-monitoring-setup/?tab=setupinventoryfromdatadog#setup-for-amazon-s3'>documentation</a>).</dd><dt class="border-0 ps-0" id=storage-management-which-cloud-providers-are-supported><a class=text-black href=#storage-management-which-cloud-providers-are-supported>Which cloud providers are supported?</a></dt><dd class=ps-0>Storage Management is generally available for Amazon S3 and in preview for Azure Blob Storage and Google Cloud Storage.</dd><dt class="border-0 ps-0" id=storage-management-can-i-use-storage-management-without-cloud-cost-management-ccm><a class=text-black href=#storage-management-can-i-use-storage-management-without-cloud-cost-management-ccm>Can I use Storage Management without Cloud Cost Management (CCM)?</a></dt><dd class=ps-0>Storage Management complements CCM by offering prefix-level visibility, anomaly detection, and cost-saving recommendations specific to object storage, helping you pinpoint and act on the root causes of storage cost growth. You don’t need CCM to use Storage Management.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-57" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'edge-device-monitoring' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=edge-device-monitoring><a class=text-black>Edge Device Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Monitor Devices at the Edge</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['EDGE-DEVICE-MONT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['EDGE-DEVICE-MONT'] ? pricing[region]['EDGE-DEVICE-MONT'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Edge Device Monitoring" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Complete visibility into your Edge network</p></li><li><p class=m-0>Fleet-wide aggregation and unified tagging</p></li><li><p class=m-0>Out-of-the-box dashboards</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['EDGE-DEVICE-MONT'] ? pricing[region]['EDGE-DEVICE-MONT'].on_demand_cost : ''">7.20</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Edge Device Monitoring" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div></div><div class="col-lg-9 content-section product-59" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'kubernetes-autoscaling' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=kubernetes-autoscaling><a class=text-black>Kubernetes Autoscaling</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Continuously optimize your Kubernetes resources</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['KUBERNETES-AUTOSCALING'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['KUBERNETES-AUTOSCALING'] ? pricing[region]['KUBERNETES-AUTOSCALING'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per autoscaled vCPU<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Kubernetes Autoscaling" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Identify overprovisioned workloads and clusters</p></li><li><p class=m-0>Automatically rightsize your Kubernetes resources</p></li><li><p class=m-0>Deploy quickly, via app or GitOps</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['KUBERNETES-AUTOSCALING'] ? pricing[region]['KUBERNETES-AUTOSCALING'].on_demand_cost : ''">4.32</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Kubernetes Autoscaling" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><p class=mt-0>Cloud Cost Management bundle discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div></div><div class="col-lg-9 content-section product-60" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'managed-platform-otlp' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=otlp-apm-ingest><a class=text-black>OTLP APM Ingest</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Export OTLP directly into Datadog</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['APM-INGEST'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['APM-INGEST'] ? pricing[region]['APM-INGEST'].annual_cost : ''">0.50</span><div class=price-helper-wrapper><span class="price-helper small">per GB of ingested spans,<br>per month</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: APM Ingest" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Simple configuration, no collector component required</p></li><li><p class=m-0>Allows routing of telemetry from managed partners like Cloudflare and Mulesoft without any additional infrastructure</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">Available in all regions. No multi-year or volume discounts available.<br></p><a data-dd-action-name="card: button: start free trial: APM Ingest" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Gain full-stack visibility within Datadog&rsquo;s platform</p></li><li class="list-item mb-1"><p class=font-18>Send metrics, logs, and traces directly to Datadog using OTLP endpoints</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Integrate observability with your architecture including any supported managed platform and other hostless envs where an agent cannot be configured</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=managed-platform-otlp-common-questions><a class=text-black href=#managed-platform-otlp-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=managed-platform-otlp-what-indexed-span-and-ingested-span-allotments-apply-under-the-new-pricing><a class=text-black href=#managed-platform-otlp-what-indexed-span-and-ingested-span-allotments-apply-under-the-new-pricing>What indexed span and ingested span allotments apply under the new pricing?</a></dt><dd class=ps-0>There are no allotments. Pricing is purely consumption-based — you pay per GB ingested and per million indexed spans, with no included quantity.</dd><dt class="border-0 ps-0" id=managed-platform-otlp-when-do-i-need-a-managed-platform-specific-endpoint><a class=text-black href=#managed-platform-otlp-when-do-i-need-a-managed-platform-specific-endpoint>When do I need a managed platform specific endpoint?</a></dt><dd class=ps-0>We use managed platform-specific endpoints to identify when managed platform billing should apply, so it is important to use the endpoint that matches your actual architecture. If you are on a managed platform like Vercel, use the managed platform-specific endpoint you were given. If you are on any other architecture (host-based, serverless, etc.), use the standard endpoint.</dd><dt class="border-0 ps-0" id=managed-platform-otlp-what-managed-partners-are-supported><a class=text-black href=#managed-platform-otlp-what-managed-partners-are-supported>What managed partners are supported?</a></dt><dd class=ps-0>Today we support OTLP export for Cloudflare, Mulesoft, Retool, Modal, and others.</dd><dt class="border-0 ps-0" id=managed-platform-otlp-how-can-i-get-approval-for-export-from-a-new-managed-partner><a class=text-black href=#managed-platform-otlp-how-can-i-get-approval-for-export-from-a-new-managed-partner>How can I get approval for export from a new managed partner?</a></dt><dd class=ps-0>Please reach out to the OpenTelemetry product team via your CSM.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-62" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'experiments' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=experiments><a class=text-black>Experiments</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Run trusted, statistically rigorous experiments to validate the impact of every change with unified behavioral, performance, and warehouse-native business metrics.</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['DEM-EXPERIMENTS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['DEM-EXPERIMENTS'] ? pricing[region]['DEM-EXPERIMENTS'].annual_cost : ''">450</span><div class=price-helper-wrapper><span class="price-helper small">per experiment,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Datadog Experiments" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Run statistically rigorous experiments with governed methodologies</p></li><li><p class=m-0>Validate experiment health with automated guardrails</p></li><li><p class=m-0>Monitor user behavior and system performance in a unified workflow</p></li><li><p class=m-0>Analyze impact using warehouse-native source-of-truth metrics</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['DEM-EXPERIMENTS'] ? pricing[region]['DEM-EXPERIMENTS'].on_demand_cost : ''">575</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Datadog Experiments" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Robust SDK for high-quality experiment rollouts with integrated performance monitoring</p></li><li class="list-item mb-1"><p class=font-18>Measure vetted business metrics with warehouse-native experimentation</p></li><li class="list-item mb-1"><p class=font-18>Streamline experiment planning with built-in sample size calculator</p></li><li class="list-item mb-1"><p class=font-18>Advanced statistical engine with support for sequential, fixed sample, and Bayesian methods. Built-in variance reduction with CUPED++</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Real-time diagnostics to proactively capture issues like sample ratio mismatch and instrumentation gaps</p></li><li class="list-item mb-1"><p class=font-18>Tight integration with Product Analytics and RUM to rigorously measure changes in behavioral and performance signals</p></li><li class="list-item mb-1"><p class=font-18>Dive into session replays right from your experiment results</p></li><li class="list-item mb-1"><p class=font-18>Understand trends by user segment, measure impact over time</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=experiments-common-questions><a class=text-black href=#experiments-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=experiments-how-is-datadog-experiments-priced><a class=text-black href=#experiments-how-is-datadog-experiments-priced>How is Datadog Experiments priced?</a></dt><dd class=ps-0>Datadog Experiments is priced based on the number of successfully launched experiments. An experiment is considered successfully launched—and billable—once it reaches at least 500 total subjects and runs for a minimum of 3 days.</dd><dt class="border-0 ps-0" id=experiments-do-i-need-datadog-feature-flags-to-use-experiments><a class=text-black href=#experiments-do-i-need-datadog-feature-flags-to-use-experiments>Do I need Datadog Feature Flags to use Experiments?</a></dt><dd class=ps-0>Yes, Experiments leverages <a href="https://www.datadoghq.com/pricing/?product=feature-flags#products">Datadog Feature Flags</a> to run and manage experiment variations. Each experiment includes an allotment of feature flag credits to help you get started.</dd><dt class="border-0 ps-0" id=experiments-do-i-need-product-analytics-to-use-experiments><a class=text-black href=#experiments-do-i-need-product-analytics-to-use-experiments>Do I need Product Analytics to use Experiments?</a></dt><dd class=ps-0>No, you do not need Product Analytics to run experiments. You can run experiments and measure results directly in your data warehouse using warehouse-native mode. Customers who use <a href="https://www.datadoghq.com/pricing/?product=real-user-monitoring#products">RUM</a> and/or <a href="https://www.datadoghq.com/pricing/?product=product-analytics#products">Product Analytics</a> alongside Experiments can measure performance and behavioral impact alongside their business metrics.</dd><dt class="border-0 ps-0" id=experiments-how-is-this-different-from-traditional-ab-testing-tools><a class=text-black href=#experiments-how-is-this-different-from-traditional-ab-testing-tools>How is this different from traditional A/B testing tools?</a></dt><dd class=ps-0>Datadog Experiments lets you measure the signals that matter — starting with business metrics directly from your native data warehouse. Within the broader Datadog platform, you can go one step further to unify experiments with observability and product analytics data to measure performance metrics like latency and errors, analyze user behavior with funnels and frustration signals, and connect to warehouse-native business metrics such as revenue, retention, and LTV.</dd><dt class="border-0 ps-0" id=experiments-do-datadog-experiments-support-advanced-statistical-methods><a class=text-black href=#experiments-do-datadog-experiments-support-advanced-statistical-methods>Do Datadog Experiments support advanced statistical methods?</a></dt><dd class=ps-0>Yes, Datadog Experiments supports multiple statistical models and includes built-in variance reduction (CUPED) to help improve experiment sensitivity and reduce time to results.</dd><dt class="border-0 ps-0" id=experiments-can-i-monitor-performance-impact-during-experiments><a class=text-black href=#experiments-can-i-monitor-performance-impact-during-experiments>Can I monitor performance impact during experiments?</a></dt><dd class=ps-0>Yes, you can connect <a href=https://docs.datadoghq.com/real_user_monitoring/>RUM signals</a> to your experiments to detect performance regressions that are correlated with specific experiment variants. Monitor key metrics like latency, errors, and Core Web Vitals in real time to understand the technical impact of every change you ship.</dd><dt class="border-0 ps-0" id=experiments-how-are-feature-flags-and-experiments-related><a class=text-black href=#experiments-how-are-feature-flags-and-experiments-related>How are Feature Flags and Experiments related?</a></dt><dd class=ps-0><a href=https://docs.datadoghq.com/getting_started/feature_flags/>Feature Flags</a> power the rollout of randomized variants to your users. Experiments build on top of Feature Flags to measure the impact of those variants with statistical rigor. When you purchase Datadog Experiments, you&rsquo;ll receive an included allotment of Feature Flag credits, so you can get started quickly without additional setup.</dd><dt class="border-0 ps-0" id=experiments-how-can-i-start-using-experiments><a class=text-black href=#experiments-how-can-i-start-using-experiments>How can I start using Experiments?</a></dt><dd class=ps-0>You can simply navigate to the Experiments page in Datadog, define the metrics you want to measure, and create your experiment. When you&rsquo;re ready to launch, attach it to a Feature Flag and deploy your variants. For detailed setup instructions and best practices, learn more in <a href=https://docs.datadoghq.com/product_analytics/experimentation/>our documentation</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-63" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'aws-fargate',
                                    
                                        'aws-lambda',
                                    
                                        'aws-step-functions',
                                    
                                        'azure-container-apps',
                                    
                                        'azure-app-service',
                                    
                                        'azure-functions',
                                    
                                        'google-cloud-run',
                                    
                                        'gke-autopilot',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'serverless-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=17><h2 class=text-md-center id=serverless-monitoring><a class=text-black>Serverless Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Detect and resolve performance issues in your serverless apps</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: AWS Fargate" @click.prevent="
                                                        updateQueryParam('tab', 'aws-fargate')
                                                        selected_category = 'AWS FARGATE'; 
                                                        planOpen = false;
                                                    " :class="'AWS FARGATE' == selected_category ? 'active' : ''">AWS Fargate
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: AWS Lambda" @click.prevent="
                                                        updateQueryParam('tab', 'aws-lambda')
                                                        selected_category = 'AWS LAMBDA'; 
                                                        planOpen = false;
                                                    " :class="'AWS LAMBDA' == selected_category ? 'active' : ''">AWS Lambda
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: AWS Step Functions" @click.prevent="
                                                        updateQueryParam('tab', 'aws-step-functions')
                                                        selected_category = 'AWS STEP FUNCTIONS'; 
                                                        planOpen = false;
                                                    " :class="'AWS STEP FUNCTIONS' == selected_category ? 'active' : ''">AWS Step Functions
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Azure Container Apps" @click.prevent="
                                                        updateQueryParam('tab', 'azure-container-apps')
                                                        selected_category = 'AZURE CONTAINER APPS'; 
                                                        planOpen = false;
                                                    " :class="'AZURE CONTAINER APPS' == selected_category ? 'active' : ''">Azure Container Apps
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Azure App Service" @click.prevent="
                                                        updateQueryParam('tab', 'azure-app-service')
                                                        selected_category = 'AZURE APP SERVICE'; 
                                                        planOpen = false;
                                                    " :class="'AZURE APP SERVICE' == selected_category ? 'active' : ''">Azure App Service
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Azure Functions" @click.prevent="
                                                        updateQueryParam('tab', 'azure-functions')
                                                        selected_category = 'AZURE FUNCTIONS'; 
                                                        planOpen = false;
                                                    " :class="'AZURE FUNCTIONS' == selected_category ? 'active' : ''">Azure Functions
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Google Cloud Run" @click.prevent="
                                                        updateQueryParam('tab', 'google-cloud-run')
                                                        selected_category = 'GOOGLE CLOUD RUN'; 
                                                        planOpen = false;
                                                    " :class="'GOOGLE CLOUD RUN' == selected_category ? 'active' : ''">Google Cloud Run
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: GKE Autopilot" @click.prevent="
                                                        updateQueryParam('tab', 'gke-autopilot')
                                                        selected_category = 'GKE AUTOPILOT'; 
                                                        planOpen = false;
                                                    " :class="'GKE AUTOPILOT' == selected_category ? 'active' : ''">GKE Autopilot</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['AWS FARGATE',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS FARGATE',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized Monitoring of <strong>AWS Fargate</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect infrastructure health with real-time task or pod metrics in the ECS troubleshooting view</p></li><li><p class="small fw-semibold">Identify unhealthy or stopped tasks and easily correlate with container logs</p></li><li><p class="small fw-semibold">Keep track of service and task versions and deployment changes, all in one place</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">per active application instance* per month**<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['AWS FARGATE',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS FARGATE',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per actively traced application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>AWS Fargate</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual requests</p></li><li><p class="small fw-semibold">Trace functions, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['AWS STEP FUNCTIONS',].includes(selected_category) && pricing[region]['SERVERLESS-INFRA'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS STEP FUNCTIONS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Workload Monitoring">Serverless Workload Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-INFRA'] ? pricing[region]['SERVERLESS-INFRA'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per active* step function,<br>per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Add deeper visibility into your functions</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect issues in your AWS Step Functions in real time</p></li><li><p class="small fw-semibold">Identify bottlenecks and optimizations in individual states within your step function</p></li><li><p class="small fw-semibold">Correlate metrics with logs, error tracking, and deployment tracking to troubleshoot faster</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average of the hourly number of active step functions<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-INFRA'] ? pricing[region]['SERVERLESS-INFRA'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Workload Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['AZURE APP SERVICE',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE APP SERVICE',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized monitoring of <strong>Azure App Service</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect issues with real-time out-of-the-box and custom metrics</p></li><li><p class="small fw-semibold">Identify increases in cold starts or shutdowns</p></li><li><p class="small fw-semibold">Search for services with custom tags</p></li><li><p class="small fw-semibold">Correlate metrics with audit logs from serverless resources</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['AZURE APP SERVICE',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE APP SERVICE',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per active* application instance, per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>Azure App Service</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual requests</p></li><li><p class="small fw-semibold">Trace functions, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">per actively traced application instance* per month**<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['AZURE CONTAINER APPS',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE CONTAINER APPS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized monitoring of <strong>Azure Container Apps</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect issues with real-time out-of-the-box and custom metrics</p></li><li><p class="small fw-semibold">Identify increases in cold starts or shutdowns</p></li><li><p class="small fw-semibold">Search for services with custom tags</p></li><li><p class="small fw-semibold">Correlate metrics with audit logs from serverless resources</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-6 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['AZURE CONTAINER APPS',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE CONTAINER APPS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per actively traced application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>Azure Container Apps</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual invocations</p></li><li><p class="small fw-semibold">Trace applications, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with the out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-7 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['AZURE FUNCTIONS',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE FUNCTIONS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized Monitoring of <strong>Azure Functions</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect issues with real-time out-of-the-box and custom metrics</p></li><li><p class="small fw-semibold">Identify increases in cold starts or shutdowns</p></li><li><p class="small fw-semibold">Search for services with custom tags</p></li><li><p class="small fw-semibold">Correlate metrics with audit logs from serverless resources</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-8 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['AZURE FUNCTIONS',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AZURE FUNCTIONS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per actively traced application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>Azure Functions</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual requests</p></li><li><p class="small fw-semibold">Trace applications, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with the out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-9 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['GOOGLE CLOUD RUN',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['GOOGLE CLOUD RUN',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized monitoring of <strong>Google Cloud Run</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Central view of Cloud Run services and functions, enriching telemetry with advanced capabilities (Error Tracking, Issues, & Insights)</p></li><li><p class="small fw-semibold">Monitor service health with out-of-the-box dashboards</p></li><li><p class="small fw-semibold">Monitor business logic with custom metrics</p></li><li><p class="small fw-semibold">Identify increases in cold starts or shutdowns</p></li><li><p class="small fw-semibold">Search for services with custom tags</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-10 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['GOOGLE CLOUD RUN',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['GOOGLE CLOUD RUN',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per actively traced application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>Google Cloud Run</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual requests</p></li><li><p class="small fw-semibold">Trace functions, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-11 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['GKE AUTOPILOT',].includes(selected_category) && pricing[region]['SERVERLESS-APPS'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['GKE AUTOPILOT',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Application Monitoring">Serverless Application Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per active application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized Monitoring of <strong>GKE Autopilot</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect infrastructure health with real-time container telemetry in the Kubernetes Explorer</p></li><li><p class="small fw-semibold">Identify health concerns with your Kubernetes resources and easily correlate with container logs</p></li><li><p class="small fw-semibold">Keep track of resources running on GKE all in one place, with deep visibility and insights powered by AI</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS'] ? pricing[region]['SERVERLESS-APPS'].on_demand_cost : ''">4.32</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-12 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['GKE AUTOPILOT',].includes(selected_category) && pricing[region]['SERVERLESS-APPS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['GKE AUTOPILOT',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application APM">Serverless Application APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].annual_cost : ''">6</span><div class=price-helper-wrapper><span class="price-helper small">Per actively traced application instance* per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for <strong>GKE Autopilot</strong></p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual requests</p></li><li><p class="small fw-semibold">Trace functions, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average over the 5 minute interval of active application instances<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APPS-APM'] ? pricing[region]['SERVERLESS-APPS-APM'].on_demand_cost : ''">9</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application APM" href=# class="js-cta-PricingCTA pricing-bg-color-13 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6
addon" x-data="{custom: false}" :class="['AWS STEP FUNCTIONS',].includes(selected_category) && pricing[region]['SERVERLESS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS STEP FUNCTIONS',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Functions APM">Serverless Functions APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per million state transitions*,<br>per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Tracing for your workflows</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Visualize the path of your executions to identify exactly where to begin troubleshooting issues</p></li><li><p class="small fw-semibold">Identify bottlenecks and optimizations in individual states within your step function with execution-level metrics and monitors</p></li><li><p class="small fw-semibold">See input and output payloads on each state transition to reproduce bugs easily</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Triggered by active workflows. 1 step function state transition is equivalent to 1 step function span.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].on_demand_cost : ''">15</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Functions APM" href=# class="js-cta-PricingCTA pricing-bg-color-14 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="['AWS LAMBDA',].includes(selected_category) && pricing[region]['SERVERLESS-INFRA'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS LAMBDA',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Serverless Workload Monitoring">Serverless Workload Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-INFRA'] ? pricing[region]['SERVERLESS-INFRA'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per active* function,<br>per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Centralized monitoring of serverless apps</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect issues with real-time serverless metrics</p></li><li><p class="small fw-semibold">Identify increases in cold starts or cold start duration</p></li><li><p class="small fw-semibold">Search for functions with custom serverless tags</p></li><li><p class="small fw-semibold">Correlate metrics with recent deployments</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Average of the hourly number of invoked functions<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-INFRA'] ? pricing[region]['SERVERLESS-INFRA'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Workload Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-15 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4
addon" x-data="{custom: false}" :class="['AWS LAMBDA',].includes(selected_category) && pricing[region]['SERVERLESS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS LAMBDA',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Functions APM">Serverless Functions APM</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per million traced invocations*,<br>per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Add deeper visibility into your active functions</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find bottlenecks or errors for individual invocations</p></li><li><p class="small fw-semibold">Trace functions, APIs and queues all in one trace</p></li><li><p class="small fw-semibold">Enrich traces with request and response payloads</p></li><li><p class="small fw-semibold">Visualize requests with out-of-the-box service map</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Triggered by active functions. 1 traced lambda invocation is equivalent to 1 top level span.<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].on_demand_cost : ''">15</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Functions APM" href=# class="js-cta-PricingCTA pricing-bg-color-16 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4
addon" x-data="{custom: false}" :class="['AWS LAMBDA',].includes(selected_category) && pricing[region]['SERVERLESS-APM'] && product === 'serverless-monitoring'
            ? 'd-flex group'
            : ['AWS LAMBDA',].includes(selected_category) && product === 'serverless-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Serverless Application Security">Serverless Application Security</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per million traced invocations*,<br>per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Comprehensive threat detection</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Detect attackers in real time</p></li><li><p class="small fw-semibold">Investigate attacks with distributed tracing and runtime context</p></li><li><p class="small fw-semibold">Build custom detection rules to detect business logic attacks</p></li><li><p class="small fw-semibold">Integrate with existing security stack to respond to attacks</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Triggered by active functions<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SERVERLESS-APM'] ? pricing[region]['SERVERLESS-APM'].on_demand_cost : ''">15</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless Application Security" href=# class="js-cta-PricingCTA pricing-bg-color-17 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list" x-show="'AWS FARGATE' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Visualize all your ECS Fargate clusters, services, tasks, and task definitions in one place</p></li><li class="list-item mb-1"><p class=font-18>Detect infrastructure health with real-time task or pod metrics in the ECS troubleshooting view</p></li><li class="list-item mb-1"><p class=font-18>Identify Unhealthy or Stopped Tasks or Pods and easily correlate with live container logs</p></li><li class="list-item mb-1"><p class=font-18>Keep track of service and task versions and deployment changes, all in one place</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AWS FARGATE' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Find bottlenecks or errors for individual invocations</p></li><li class="list-item mb-1"><p class=font-18>Trace applications, APIs and queues all in one trace</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li><li class="list-item mb-1"><p class=font-18>Visualize requests with the out-of-the-box service map</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AWS LAMBDA' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Integrates with AWS CDK, Serverless Framework, SAM, Terraform, and more</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box health dashboards for API Gateway, Step Functions, SQS, DynamoDB, and more</p></li><li class="list-item mb-1"><p class=font-18>Optimize function memory use and cold starts with Watchdog Insights</p></li><li class="list-item mb-1"><p class=font-18>Optimize memory and cold starts</p></li><li class="list-item mb-1"><p class=font-18>Available for Lambda functions in all major Lambda runtimes</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AWS LAMBDA' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Analyze request and response payloads for each serverless invocation</p></li><li class="list-item mb-1"><p class=font-18>Performance metrics and version comparisons for every release with deployment tracking</p></li><li class="list-item mb-1"><p class=font-18>Automatic APM trace map visualizes end-to-end trajectory for requests and attacks</p></li><li class="list-item mb-1"><p class=font-18>Pivot from failing functions to related commits in GitHub</p></li><li class="list-item mb-1"><p class=font-18>140+ out-of-the-box rules to detect attacks in real time</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AWS STEP FUNCTIONS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Out-of-the-box health dashboards for AWS Step Functions</p></li><li class="list-item mb-1"><p class=font-18>Easily understand and optimize bottlenecks Step Functions with an aggregated State Machine Health Map</p></li><li class="list-item mb-1"><p class=font-18>Visualization execution map to identify error-states, inputs, and outputs to easily reproduce issues</p></li><li class="list-item mb-1"><p class=font-18>Correlated logs, metrics, error tracking, and traces for simplified troubleshooting</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AWS STEP FUNCTIONS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Upstream trace propagation and linked lambda traces for end-to-end trajectory for each request</p></li><li class="list-item mb-1"><p class=font-18>Performance metrics and version comparisons for every release with deployment tracking</p></li><li class="list-item mb-1"><p class=font-18>End-to-end flame graph and waterfall visualizations within APM with the ability to generate trace metrics and monitors</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE APP SERVICE' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Get real-time visibility into Web Apps and Function Apps across all environments</p></li><li class="list-item mb-1"><p class=font-18>Monitor issues, errors and latency with out-of-the-box dashboards</p></li><li class="list-item mb-1"><p class=font-18>Monitor business logic with custom metrics</p></li><li class="list-item mb-1"><p class=font-18>Set alerts on errors and latency spikes</p></li><li class="list-item mb-1"><p class=font-18>Search for Web Apps and Function Apps with custom tags</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE APP SERVICE' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Identify resource and cost inefficiencies</p></li><li class="list-item mb-1"><p class=font-18>Correlate logs, metrics, and traces in one unified view for faster troubleshooting</p></li><li class="list-item mb-1"><p class=font-18>Understand dependencies between App Services and other services (e.g., EventHub, Service Bus, APIs)</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE CONTAINER APPS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Get real-time visibility into Container Apps across all environments</p></li><li class="list-item mb-1"><p class=font-18>Visualize CPU, memory, and network usage per container app with out-of-the-box dashboards</p></li><li class="list-item mb-1"><p class=font-18>Monitor business logic with custom metrics</p></li><li class="list-item mb-1"><p class=font-18>Search for Container Apps with custom tags</p></li><li class="list-item mb-1"><p class=font-18>Set alerts on replica counts, errors, and latency spikes</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE CONTAINER APPS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Identify resource and cost inefficiencies</p></li><li class="list-item mb-1"><p class=font-18>Correlate logs, metrics, and traces in one unified view for faster troubleshooting</p></li><li class="list-item mb-1"><p class=font-18>Trace requests across container boundaries with full visibility into microservice flows</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE FUNCTIONS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Track function execution patterns with real-time Azure-native metrics</p></li><li class="list-item mb-1"><p class=font-18>Monitor business logic with custom metrics</p></li><li class="list-item mb-1"><p class=font-18>Understand scaling behavior with visibility into concurrent function instances</p></li><li class="list-item mb-1"><p class=font-18>Search for Functions with custom tags</p></li><li class="list-item mb-1"><p class=font-18>Monitor cold starts, timeouts, and failures with out-of-the-box dashboards</p></li></ul></div><div class="col-md-6 feature-list" x-show="'AZURE FUNCTIONS' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Identify resource and cost inefficiencies</p></li><li class="list-item mb-1"><p class=font-18>Correlate logs, metrics, and traces in one unified view for faster troubleshooting</p></li><li class="list-item mb-1"><p class=font-18>Understand dependencies between Functions and other services (e.g., EventHub, Service Bus, APIs)</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li></ul></div><div class="col-md-6 feature-list" x-show="'GOOGLE CLOUD RUN' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Central view of Cloud Run services and functions, enriching telemetry with advanced capabilities (Error Tracking, Issues & Insights)
                      </p></li><li class="list-item mb-1"><p class=font-18>Monitor service health with out-of-the-box dashboards</p></li><li class="list-item mb-1"><p class=font-18>Monitor business logic with custom metrics</p></li><li class="list-item mb-1"><p class=font-18>Identify increases in cold starts or shutdowns</p></li><li class="list-item mb-1"><p class=font-18>Search for services with custom tags</p></li></ul></div><div class="col-md-6 feature-list" x-show="'GOOGLE CLOUD RUN' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Find bottlenecks or errors for individual requests</p></li><li class="list-item mb-1"><p class=font-18>End-to-end traces with inferred spans to upstream and downstream services</p></li><li class="list-item mb-1"><p class=font-18>Correlate logs to traces for efficient root cause analysis</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li></ul></div><div class="col-md-6 feature-list" x-show="'GKE AUTOPILOT' == selected_category"><p class="fw-semibold small">Serverless Application Monitoring</p><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Detect infrastructure health with real-time container telemetry in the Kubernetes Explorer</p></li><li class="list-item mb-1"><p class=font-18>Identify health concerns with your Kubernetes resources and easily correlate with container logs</p></li><li class="list-item mb-1"><p class=font-18>Keep track of your resources running on GKE all in one place, with deep visibility and insights powered by AI</p></li></ul></div><div class="col-md-6 feature-list" x-show="'GKE AUTOPILOT' == selected_category"><p class="fw-semibold small">APM</p><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Find bottlenecks or errors for individual requests</p></li><li class="list-item mb-1"><p class=font-18>End-to-end traces with inferred spans to upstream and downstream services</p></li><li class="list-item mb-1"><p class=font-18>Correlate logs to traces for efficient root cause analysis</p></li><li class="list-item mb-1"><p class=font-18>Enrich traces with request and response payloads</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AWS FARGATE' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AWS LAMBDA' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AWS STEP FUNCTIONS' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AZURE APP SERVICE' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AZURE CONTAINER APPS' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'AZURE FUNCTIONS' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'GOOGLE CLOUD RUN' == selected_category"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'GKE AUTOPILOT' == selected_category"></div></div></div><div class="row my-4" x-show="['AWS Lambda','AWS Step Functions',].includes(selected_category)"><div class="col-12 text-center"><h3>Serverless Function Pricing Example</h3><table class="mt-3 border-black border-top border-bottom border-start-0 border-end-0"><tr class=border-bottom><th class=text-start></th><th class=text-start>HOUR 1</th><th class=text-start>HOUR 2</th><th class=text-start>HOUR 3</th></tr><tr><td class=text-start><b>Function A</b></td><td class=text-start>10 invocations</td><td class=text-start>0 invocations</td><td class=text-start>1M invocations</td></tr><tr><td class=text-start><b>Function B</b></td><td class=text-start>1 invocation</td><td class=text-start>5M invocations</td><td class=text-start>1M invocations</td></tr><tr><td class=text-start><b>Function C</b></td><td class=text-start>0 invocations</td><td class=text-start>0 invocations</td><td class=text-start>1 invocation</td></tr><tr><td class=text-start>Total Active Functions for Hour</td><td class=text-start>2 active functions<br>(Function A and B)</td><td class=text-start>1 active functions<br>(Function B)</td><td class=text-start>3 active functions<br>(Function A, B, and C)</td></tr></table></div><div class="container fw-semibold font-16-20"><div class="row py-2"><div class="col col-2"><div class="d-flex justify-content-center border-black border-bottom">2 + 1 + 3</div><div class="d-flex justify-content-center">3*</div></div><div class="col col-10 px-0 d-flex flex-wrap align-content-center">= 2 average active functions for this time period</div></div><div class="col col-12 pb-2">= 2 average active functions &#215; $<span x-text="pricing[region]['SERVERLESS-INFRA'].annual_cost">5</span> = $<span x-text="pricing[region]['SERVERLESS-INFRA'].annual_cost*2">10</span></div></div><p class=small>*denominator for normal month would be the number of hours in that month. For example, in a 30-day month, it would be 720 hours.</p></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=serverless-monitoring-common-questions><a class=text-black href=#serverless-monitoring-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: AWS Fargate" @click.prevent="
                  updateQueryParam('tab', 'aws-fargate');
                  selected_category = 'AWS FARGATE';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AWS FARGATE' == selected_category ? 'active' : ''">AWS Fargate
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: AWS Lambda" @click.prevent="
                  updateQueryParam('tab', 'aws-lambda');
                  selected_category = 'AWS LAMBDA';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AWS LAMBDA' == selected_category ? 'active' : ''">AWS Lambda
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: AWS Step Functions" @click.prevent="
                  updateQueryParam('tab', 'aws-step-functions');
                  selected_category = 'AWS STEP FUNCTIONS';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AWS STEP FUNCTIONS' == selected_category ? 'active' : ''">AWS Step Functions
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Azure App Service" @click.prevent="
                  updateQueryParam('tab', 'azure-app-service');
                  selected_category = 'AZURE APP SERVICE';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AZURE APP SERVICE' == selected_category ? 'active' : ''">Azure App Service
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Azure Container Apps" @click.prevent="
                  updateQueryParam('tab', 'azure-container-apps');
                  selected_category = 'AZURE CONTAINER APPS';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AZURE CONTAINER APPS' == selected_category ? 'active' : ''">Azure Container Apps
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Azure Functions" @click.prevent="
                  updateQueryParam('tab', 'azure-functions');
                  selected_category = 'AZURE FUNCTIONS';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'AZURE FUNCTIONS' == selected_category ? 'active' : ''">Azure Functions
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Google Cloud Run" @click.prevent="
                  updateQueryParam('tab', 'google-cloud-run');
                  selected_category = 'GOOGLE CLOUD RUN';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'GOOGLE CLOUD RUN' == selected_category ? 'active' : ''">Google Cloud Run
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: GKE Autopilot" @click.prevent="
                  updateQueryParam('tab', 'gke-autopilot');
                  selected_category = 'GKE AUTOPILOT';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'GKE AUTOPILOT' == selected_category ? 'active' : ''">GKE Autopilot</span></div></div><div class=faq-tab-content id=pills-tabContent--serverless-monitoring><div class=faq-tab id=pills-aws-fargate x-show="'AWS FARGATE' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-aws-fargate-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-aws-fargate-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active instances for Fargate are the number of unique running Fargate tasks (ECS) or Fargate pods (EKS) that were observed in an active state during at least one 5-minute metering interval, averaged across the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-fargate-is-tracing-included-in-fargate-monitoring><a class=text-black href=#serverless-monitoring-aws-fargate-is-tracing-included-in-fargate-monitoring>Is Tracing included in Fargate Monitoring?</a></dt><dd class=ps-0>Tracing applications running on ECS Fargate or EKS Fargate is supported via the add on Serverless Apps APM product. It can be enabled with the Datadog Agent and adding a tracing library to your application.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-fargate-what-metrics-are-included-in-serverless-workload-monitoring><a class=text-black href=#serverless-monitoring-aws-fargate-what-metrics-are-included-in-serverless-workload-monitoring>What metrics are included in Serverless Workload Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-fargate-can-i-control-how-many-requests-are-traced><a class=text-black href=#serverless-monitoring-aws-fargate-can-i-control-how-many-requests-are-traced>Can I control how many requests are traced?</a></dt><dd class=ps-0>Yes, you can control the percentage of Fargate requests that generate APM data by configuring your <a href=https://docs.datadoghq.com/serverless/azure_container_apps#environment-variables title='tracing settings' aria-label='tracing settings'>tracing settings</a>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-fargate-how-do-i-track-my-usage><a class=text-black href=#serverless-monitoring-aws-fargate-how-do-i-track-my-usage>How do I track my usage?</a></dt><dd class=ps-0>Datadog&rsquo;s Plan & Usage page shows all active app instances broken down by workload. You can also view all ECS Fargate workloads in the <a href="https://app.datadoghq.com/orchestration/explorer/ecsTask?explorer-na-groups=false" title="ECS view" aria-label="ECS view">ECS view</a> and EKS workloads in the <a href=https://app.datadoghq.com/orchestration/explorer/pod title="Kubernetes view" aria-label="Kubernetes view">Kubernetes view</a> in Datadog.</dd></dl></div><div class=faq-tab id=pills-aws-lambda x-show="'AWS LAMBDA' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-how-do-you-define-an-active-function><a class=text-black href=#serverless-monitoring-aws-lambda-how-do-you-define-an-active-function>How do you define an active function?</a></dt><dd class=ps-0>Datadog bills based on the average number of functions per hour across the month for your accounts. Every hour, Datadog records the number of functions that were executed one or more times and monitored by your Datadog account. At the end of the month, Datadog charges by calculating the average of the hourly number of functions recorded. For example, if you invoked a function only once during a month, your bill will be 1 function / 720 hours * $<span x-text="pricing[region]['SERVERLESS-INFRA'].annual_cost">5</span>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-how-do-you-define-a-traced-invocation><a class=text-black href=#serverless-monitoring-aws-lambda-how-do-you-define-a-traced-invocation>How do you define a traced invocation?</a></dt><dd class=ps-0>Datadog creates a top-level Lambda span for every Lambda invocation that is traced. Your bill is based on the sum of AWS Lambda invocations connected to an ingested APM trace in a given month. You will also be billed for the total number of indexed spans submitted to the Datadog APM service exceeding the bundled quantity at the end of the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-can-i-control-how-many-invocations-are-traced><a class=text-black href=#serverless-monitoring-aws-lambda-can-i-control-how-many-invocations-are-traced>Can I control how many invocations are traced?</a></dt><dd class=ps-0>Yes, Datadog allows you to control the percentage of Lambda function invocations that generate APM data.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-can-serverless-functions-apm-be-purchased-without-serverless-workload-monitoring><a class=text-black href=#serverless-monitoring-aws-lambda-can-serverless-functions-apm-be-purchased-without-serverless-workload-monitoring>Can Serverless Functions APM be purchased without Serverless Workload Monitoring?</a></dt><dd class=ps-0>No, Serverless Functions APM is an optional add-on for serverless functions sending metrics to Datadog via Serverless Workload Monitoring.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-what-is-a-hrefpricingallotmentsallotteda-with-serverless-functions-apm><a class=text-black href=#serverless-monitoring-aws-lambda-what-is-a-hrefpricingallotmentsallotteda-with-serverless-functions-apm>What is <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> with Serverless Functions APM?</a></dt><dd class=ps-0>Span Ingestion: 50GB <a href='https://www.datadoghq.com/pricing/?product=apm#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> per 1M traced invocations; then $<span x-text="pricing[region]['SPANS-INGEST'].annual_cost">0.10</span>/GB.
Span Retention: 300 thousand <a href='https://www.datadoghq.com/pricing/?product=apm#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> per 1M traced invocations; then $<span x-text="pricing[region]['TRACE-15DAY'].annual_cost">1.70</span> per 1 million Indexed Spans with 15-day retention (billed annually or $<span x-text="pricing[region]['TRACE-15DAY'].on_demand_cost">2.55</span> on-demand).
See <a href='https://www.datadoghq.com/pricing/?product=apm#apm-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-what-aws-lambda-runtimes-do-you-support><a class=text-black href=#serverless-monitoring-aws-lambda-what-aws-lambda-runtimes-do-you-support>What AWS Lambda runtimes do you support?</a></dt><dd class=ps-0>Python, Node.js, Go, Ruby, Java, and .NET</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-can-i-monitor-other-aws-services-used-alongside-my-lambda-functions><a class=text-black href=#serverless-monitoring-aws-lambda-can-i-monitor-other-aws-services-used-alongside-my-lambda-functions>Can I monitor other AWS services used alongside my Lambda functions?</a></dt><dd class=ps-0>Yes, Datadog has an easy to set up <a href='https://docs.datadoghq.com/integrations/amazon_web_services/?tab=automaticcloudformation'>AWS integration</a> which immediately pulls in metrics and more from 85+ AWS services, including Amazon API Gateway, Amazon DynamoDB, AWS AppSync, Amazon SQS, Amazon Kinesis, and AWS Step Functions.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-lambda-what-security-capabilities-are-available-for-aws-lambda><a class=text-black href=#serverless-monitoring-aws-lambda-what-security-capabilities-are-available-for-aws-lambda>What security capabilities are available for AWS Lambda?</a></dt><dd class=ps-0>Datadog allows you to detect meaningful threats on your applications running on AWS Lambda, and block attacks in your AWS Web Application Firewall (WAF) using <a href=https://docs.datadoghq.com/getting_started/workflow_automation/>Workflow Automation</a>. Learn more about application security with our <a href='https://docs.datadoghq.com/security/application_security/enabling/serverless/?tab=serverlessframework'>documentation</a>.</dd></dl></div><div class=faq-tab id=pills-aws-step-functions x-show="'AWS STEP FUNCTIONS' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-how-do-you-define-an-active-aws-step-function><a class=text-black href=#serverless-monitoring-aws-step-functions-how-do-you-define-an-active-aws-step-function>How do you define an active AWS Step Function?</a></dt><dd class=ps-0>Datadog bills based on the average number of AWS Step Functions per hour across the month for your accounts. Every hour, Datadog records the number of Step Functions that were executed one or more times and monitored by your Datadog account. At the end of the month, Datadog charges by calculating the average of the hourly number of AWS Step Functions recorded. For example, if you invoked a function only once during a month, your bill will be 1 function / 720 hours * $<span x-text="pricing[region]['SERVERLESS-INFRA'].annual_cost">5</span>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-how-do-you-define-a-span-for-aws-step-functions><a class=text-black href=#serverless-monitoring-aws-step-functions-how-do-you-define-a-span-for-aws-step-functions>How do you define a span for AWS Step Functions?</a></dt><dd class=ps-0>Datadog bills based on the sum of AWS Step Function State transitions connected to an ingested APM trace in a given month. You will also be billed for the total number of indexed spans submitted to the Datadog APM service exceeding the bundled quantity at the end of the month. Any spans that are linked to the Step Function state, such as a Lambda invocation span, is billed additionally. See AWS lambda pricing for more details.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-can-i-control-how-many-invocations-are-traced><a class=text-black href=#serverless-monitoring-aws-step-functions-can-i-control-how-many-invocations-are-traced>Can I control how many invocations are traced?</a></dt><dd class=ps-0>Yes, Datadog allows you to control the percentage of AWS Step Function invocations that generate APM data.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-can-serverless-functions-apm-be-purchased-without-serverless-workload-monitoring><a class=text-black href=#serverless-monitoring-aws-step-functions-can-serverless-functions-apm-be-purchased-without-serverless-workload-monitoring>Can Serverless Functions APM be purchased without Serverless Workload Monitoring?</a></dt><dd class=ps-0>No, Serverless Functions APM is an optional add-on for serverless functions sending metrics to Datadog via Serverless Workload Monitoring.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-what-is-a-hrefpricingallotmentsallotteda-with-serverless-functions-apm><a class=text-black href=#serverless-monitoring-aws-step-functions-what-is-a-hrefpricingallotmentsallotteda-with-serverless-functions-apm>What is <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> with Serverless Functions APM?</a></dt><dd class=ps-0>Span Ingestion: 50GB <a href='https://www.datadoghq.com/pricing/?product=apm#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> per 1M traced invocations; then $<span x-text="pricing[region]['SPANS-INGEST'].annual_cost">0.10</span>/GB.
Span Retention: 300 thousand <a href='https://www.datadoghq.com/pricing/?product=apm#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> per 1M traced invocations; then $<span x-text="pricing[region]['TRACE-15DAY'].annual_cost">1.70</span> per 1 million Indexed Spans with 15-day retention (billed annually or $<span x-text="pricing[region]['TRACE-15DAY'].on_demand_cost">2.55</span> on-demand).
See <a href='https://www.datadoghq.com/pricing/?product=apm#apm-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-what-if-i-am-sending-both-aws-lambda-spans-and-aws-step-function-spans><a class=text-black href=#serverless-monitoring-aws-step-functions-what-if-i-am-sending-both-aws-lambda-spans-and-aws-step-function-spans>What if I am sending both AWS Lambda Spans and AWS Step Function Spans?</a></dt><dd class=ps-0>AWS Lambda spans will be billed separately from AWS Step Function Spans. However, you can still <a href="https://docs.datadoghq.com/serverless/step_functions/installation/?tab=serverlessframework#setup">link traces from AWS Lambda and Step Functions</a> together to get end-to-end step function execution visibility.</dd><dt class="border-0 ps-0" id=serverless-monitoring-aws-step-functions-can-i-monitor-other-serverless-aws-services-used-alongside-my-step-functions><a class=text-black href=#serverless-monitoring-aws-step-functions-can-i-monitor-other-serverless-aws-services-used-alongside-my-step-functions>Can I monitor other Serverless AWS services used alongside my Step Functions?</a></dt><dd class=ps-0>Yes, you can <a href=https://docs.datadoghq.com/serverless/aws_lambda/installation/>monitor AWS Lambda functions with the Datadog Extension</a> to get even deeper visibility into your Serverless workloads. Datadog also has an easy to set up <a href="https://docs.datadoghq.com/integrations/amazon_web_services/?tab=automaticcloudformation">AWS integration</a> which immediately pulls in metrics and more from 85+ AWS services, including Amazon API Gateway, Amazon DynamoDB, AWS AppSync, Amazon SQS, Amazon Kinesis</dd></dl></div><div class=faq-tab id=pills-azure-app-service x-show="'AZURE APP SERVICE' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-azure-app-service-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-azure-app-service-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active application instances for Azure App Service are the number of unique web app or function app instances that were observed in an active state during at least one 5-minute metering interval, averaged across the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-app-service-is-tracing-included-in-container-app-monitoring><a class=text-black href=#serverless-monitoring-azure-app-service-is-tracing-included-in-container-app-monitoring>Is Tracing included in Container App Monitoring?</a></dt><dd class=ps-0>Tracing Azure App Service applications is supported via the add on Serverless Apps APM product. It can be enabled with the Datadog Serverless Agent and adding a tracing library to your application.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-app-service-what-metrics-are-included-in-serverless-workload-monitoring><a class=text-black href=#serverless-monitoring-azure-app-service-what-metrics-are-included-in-serverless-workload-monitoring>What metrics are included in Serverless Workload Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-app-service-can-i-control-how-many-requests-are-traced><a class=text-black href=#serverless-monitoring-azure-app-service-can-i-control-how-many-requests-are-traced>Can I control how many requests are traced?</a></dt><dd class=ps-0>Yes, you can control the percentage of App Service requests that generate APM data by configuring your <a href=https://docs.datadoghq.com/serverless/azure_app_service/#apm-and-custom-metrics title="tracing settings" aria-label="tracing settings">tracing settings</a>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-app-service-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps><a class=text-black href=#serverless-monitoring-azure-app-service-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps>Why are Azure Functions listed in multiple categories (App Services, Functions, and Container Apps)?</a></dt><dd class=ps-0><p>Azure Functions can run on different platforms depending on how they&rsquo;re deployed, including App Service Plans, Consumption Plans, Premium Plans, or inside Azure Container Apps. Datadog automatically detects the hosting platform and meters usage accordingly:</p><ul><li>Functions on App Service Plans are counted as App Service instances</li><li>Functions on Consumption or Premium Plans are counted under Azure Functions</li><li>Functions inside Container Apps are counted as container replicas</li></ul><p>This ensures accurate usage-based billing, no matter where your functions run.</p></dd></dl></div><div class=faq-tab id=pills-azure-container-apps x-show="'AZURE CONTAINER APPS' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-azure-container-apps-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-azure-container-apps-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active application instances for Azure Container Apps are the number of unique Container App Replicas that were observed in an active state during at least one 5-minute metering interval, averaged across the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-container-apps-is-tracing-included-in-container-app-monitoring><a class=text-black href=#serverless-monitoring-azure-container-apps-is-tracing-included-in-container-app-monitoring>Is Tracing included in Container App Monitoring?</a></dt><dd class=ps-0>Tracing Azure Container Apps is supported via the add on Serverless Apps APM product. It can be enabled with the Datadog Serverless Agent and adding a tracing library to your application.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-container-apps-what-metrics-are-included-in-serverless-application-monitoring><a class=text-black href=#serverless-monitoring-azure-container-apps-what-metrics-are-included-in-serverless-application-monitoring>What metrics are included in Serverless Application Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-container-apps-can-i-control-how-many-requests-are-traced><a class=text-black href=#serverless-monitoring-azure-container-apps-can-i-control-how-many-requests-are-traced>Can I control how many requests are traced?</a></dt><dd class=ps-0>Yes, you can control the percentage of Container App requests that generate APM data by configuring your <a href=https://docs.datadoghq.com/serverless/azure_container_apps#environment-variables>tracing settings</a>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-container-apps-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps><a class=text-black href=#serverless-monitoring-azure-container-apps-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps>Why are Azure Functions listed in multiple categories (App Services, Functions, and Container Apps)?</a></dt><dd class=ps-0><p>Azure Functions can run on different platforms depending on how they&rsquo;re deployed, including App Service Plans, Consumption Plans, Premium Plans, or inside Azure Container Apps. Datadog automatically detects the hosting platform and meters usage accordingly:</p><ul><li>Functions on App Service Plans are counted as App Service instances</li><li>Functions on Consumption or Premium Plans are counted under Azure Functions</li><li>Functions inside Container Apps are counted as container replicas</li></ul><p>This ensures accurate usage-based billing, no matter where your functions run.</p></dd></dl></div><div class=faq-tab id=pills-azure-functions x-show="'AZURE FUNCTIONS' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-azure-functions-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-azure-functions-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active instances for Azure Functions are measured based on the number of unique active Container App Replicas that are monitored within each 5-minute period. To calculate the monthly average, we take the average number over all 5-minute periods in the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-functions-is-tracing-included-in-azure-functions-monitoring><a class=text-black href=#serverless-monitoring-azure-functions-is-tracing-included-in-azure-functions-monitoring>Is Tracing included in Azure Functions Monitoring?</a></dt><dd class=ps-0>Tracing applications running on Azure Functions is supported via the add on Serverless Apps APM product. It can be enabled with the Datadog Serverless Agent and adding a tracing library to your function.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-functions-what-metrics-are-included-in-serverless-application-monitoring><a class=text-black href=#serverless-monitoring-azure-functions-what-metrics-are-included-in-serverless-application-monitoring>What metrics are included in Serverless Application Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-functions-can-i-control-how-many-requests-are-traced><a class=text-black href=#serverless-monitoring-azure-functions-can-i-control-how-many-requests-are-traced>Can I control how many requests are traced?</a></dt><dd class=ps-0>Yes, you can control the percentage of Function requests that generate APM data by configuring your <a href="https://docs.datadoghq.com/serverless/azure_functions/?tab=nodejs" title="tracing settings" aria-label="tracing settings">tracing settings</a>.</dd><dt class="border-0 ps-0" id=serverless-monitoring-azure-functions-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps><a class=text-black href=#serverless-monitoring-azure-functions-why-are-azure-functions-listed-in-multiple-categories-app-services-functions-and-container-apps>Why are Azure Functions listed in multiple categories (App Services, Functions, and Container Apps)?</a></dt><dd class=ps-0><p>Azure Functions can run on different platforms depending on how they&rsquo;re deployed, including App Service Plans, Consumption Plans, Premium Plans, or inside Azure Container Apps. Datadog automatically detects the hosting platform and meters usage accordingly:</p><ul><li>Functions on App Service Plans are counted as App Service instances</li><li>Functions on Consumption or Premium Plans are counted under Azure Functions</li><li>Functions inside Container Apps are counted as container replicas</li></ul><p>This ensures accurate usage-based billing, no matter where your functions run.</p></dd></dl></div><div class=faq-tab id=pills-google-cloud-run x-show="'GOOGLE CLOUD RUN' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-google-cloud-run-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-google-cloud-run-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active instances for Google Cloud Run are the number of unique active application containers that were observed in an active state during at least one 5-minute metering interval, averaged across the month.</dd><dt class="border-0 ps-0" id=serverless-monitoring-google-cloud-run-which-cloud-run-workloads-are-supported-and-included-in-the-pricing-plan><a class=text-black href=#serverless-monitoring-google-cloud-run-which-cloud-run-workloads-are-supported-and-included-in-the-pricing-plan>Which Cloud Run workloads are supported and included in the pricing plan?</a></dt><dd class=ps-0>Cloud Run services, Cloud Run Functions (Gen 2), and Cloud Run Functions (Gen 1) are included in the pricing plan for both Serverless Application Monitoring and Serverless Application APM. The same pricing applies for all workloads.</dd><dt class="border-0 ps-0" id=serverless-monitoring-google-cloud-run-is-tracing-included-in-container-app-monitoring><a class=text-black href=#serverless-monitoring-google-cloud-run-is-tracing-included-in-container-app-monitoring>Is Tracing included in Container App Monitoring?</a></dt><dd class=ps-0>Tracing Cloud Run services and functions is supported via the add on Serverless Apps APM product. It can be enabled with the Datadog Serverless Agent and adding a tracing library to your application.</dd><dt class="border-0 ps-0" id=serverless-monitoring-google-cloud-run-what-metrics-are-included-in-serverless-workload-monitoring><a class=text-black href=#serverless-monitoring-google-cloud-run-what-metrics-are-included-in-serverless-workload-monitoring>What metrics are included in Serverless Workload Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-google-cloud-run-can-i-control-how-many-requests-are-traced><a class=text-black href=#serverless-monitoring-google-cloud-run-can-i-control-how-many-requests-are-traced>Can I control how many requests are traced?</a></dt><dd class=ps-0>Yes, you can control the percentage of Cloud Run requests that generate APM data by configuring your <a href=https://docs.datadoghq.com/serverless/google_cloud_run/#environment-variables>tracing settings</a>.</dd></dl></div><div class=faq-tab id=pills-gke-autopilot x-show="'GKE AUTOPILOT' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=serverless-monitoring-gke-autopilot-how-do-you-define-an-active-application-instance><a class=text-black href=#serverless-monitoring-gke-autopilot-how-do-you-define-an-active-application-instance>How do you define an active application instance?</a></dt><dd class=ps-0>Active instances for GKE Autopilot are the number of unique active pods during at least one 5-minute metering interval, averaged across the month. Note: If you are using the Datadog Agent to instrument GKE Autopilot, and are using Agent 7.65.0+ and version 3.113.0+ of the Helm chart, ensure the <code>datadog.kubelet.useApiServer</code> property is enabled.</dd><dt class="border-0 ps-0" id=serverless-monitoring-gke-autopilot-are-otel-instrumented-gke-autopilot-workloads-billable><a class=text-black href=#serverless-monitoring-gke-autopilot-are-otel-instrumented-gke-autopilot-workloads-billable>Are OTel instrumented GKE Autopilot workloads billable?</a></dt><dd class=ps-0>For OTel instrumented GKE Autopilot workloads, only Serverless Apps APM is billable. Infra OTel for Serverless will be billable on a future date.</dd><dt class="border-0 ps-0" id=serverless-monitoring-gke-autopilot-is-tracing-included-in-gke-autopilot-monitoring><a class=text-black href=#serverless-monitoring-gke-autopilot-is-tracing-included-in-gke-autopilot-monitoring>Is Tracing Included In GKE Autopilot monitoring?</a></dt><dd class=ps-0>Tracing GKE Autopilot is supported via the add on Serverless Apps APM product. It can be enabled via supported OpenTelemetry setups or the Datadog Agent.</dd><dt class="border-0 ps-0" id=serverless-monitoring-gke-autopilot-what-metrics-are-included-in-serverless-application-monitoring><a class=text-black href=#serverless-monitoring-gke-autopilot-what-metrics-are-included-in-serverless-application-monitoring>What metrics are included in Serverless Application Monitoring?</a></dt><dd class=ps-0>Each active application instance includes an allotment of 20 ingested custom metrics and 20 indexed custom metrics under application monitoring. The APM add-on offering provides 30GB of <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Ingested Spans</a> and <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#apm-apm-what-is-the-difference-between-ingestion-and-retention'>Indexed Spans</a> allotment to 195k. See <a href='https://www.datadoghq.com/pricing/?product=application-performance-monitoring#application-performance-monitoring-common-questions'>APM common questions</a> for additional retention periods.</dd><dt class="border-0 ps-0" id=serverless-monitoring-gke-autopilot-can-i-control-how-many-pods-are-monitored><a class=text-black href=#serverless-monitoring-gke-autopilot-can-i-control-how-many-pods-are-monitored>Can I control how many pods are monitored?</a></dt><dd class=ps-0>Yes, you can use <a href=https://docs.datadoghq.com/agent/guide/autodiscovery-management/>Container Discovery Management</a> to selectively monitor GKE Autopilot workloads.</dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-64" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'llm-observability' ? 'active' : ''"><div class=multi-plan data-plan-count=2><h2 class=text-md-center id=agent-observability><a class=text-black>Agent Observability</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Monitor, evaluate, and improve your AI agents across development and production in one platform</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['LLM-OBSERVABILITY-15DAY-FREE'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Free>Free</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LLM-OBSERVABILITY-15DAY-FREE'] ? pricing[region]['LLM-OBSERVABILITY-15DAY-FREE'].annual_cost : ''">0</span><div class=price-helper-wrapper><span class="price-helper small">per month<br>&nbsp;<br>&nbsp;</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p></p><p class="small fw-semibold">For individuals and small teams</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Up to 40K LLM spans / month</p></li><li><p class="small fw-semibold">15-day trace retention</p></li><li><p class="small fw-semibold">Unlimited context & evals</p></li><li><p class="small fw-semibold">Full feature access</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''"></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Free" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['LLM-OBSERVABILITY-15DAY'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Pro>Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LLM-OBSERVABILITY-15DAY'] ? pricing[region]['LLM-OBSERVABILITY-15DAY'].annual_cost : ''">160</span><div class=price-helper-wrapper><span class="price-helper small">per month<br>100K LLM spans per month included. Additional spans: $<span x-text="pricing[region]['LLM-OBSERVABILITY-ADDL-10K'] ? pricing[region]['LLM-OBSERVABILITY-ADDL-10K'].annual_cost : ''">3.5</span> per 10K LLM spans.</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p></p><p class="small fw-semibold">For teams at scale</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">100K LLM spans per month included</p></li><li><p class="small fw-semibold">15-day trace retention</p></li><li><p class="small fw-semibold">Unlimited context & evals</p></li><li><p class="small fw-semibold">Full feature access</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">Annual pricing shown. On-demand and M2M options available.<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Pro" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row mt-6 mb-4 text-center"><div class=col-12><h2 class=mb-4>Unlimited context for unlimited ambition</h2><p class=mb-5>Only pay based on the volume of LLM spans, even as context grows, reasoning gets heavier, and agents use more tools.</p><div class="row g-0 border rounded"><div class="col-md-6 p-4 text-center"><p class="fw-bold mb-2">How we price</p><p class=mb-0>Per LLM spans only — not tool spans, workflow spans, or retrieval spans. You pay for calls to the model, nothing else.</p></div><div class="col-md-6 p-4 text-center border-start"><p class="fw-bold mb-2">Why it matters</p><p class=mb-0>You pay for the actual AI work, not every surrounding step in the workflow. That makes pricing simpler to forecast as agents grow more complex and context windows expand.</p></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><p class="fw-semibold small">PRE-PRODUCTION & DEVELOPMENT</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Use human review and annotation to label outputs at scale and improve dataset quality</p></li><li class=mb-1><p class=font-18>Build versioned datasets from production traces to create a durable, reusable testing foundation</p></li><li class=mb-1><p class=font-18>Iterate on prompts, models, and agent logic in Playground before touching production</p></li><li class=mb-1><p class=font-18>Run structured experiments to compare configurations side by side and validate changes with evidence</p></li><li class=mb-1><p class=font-18>Catch regressions before release with offline evaluators aligned to your quality, cost, and latency KPIs</p></li></ul></div><div class="col-md-6 feature-list"><p class="fw-semibold small">PRODUCTION OBSERVABILITY</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Trace every agent step with full span-level inputs, outputs, and metadata across prompts, retrieval, tool calls, and decisions</p></li><li class=mb-1><p class=font-18>Monitor latency, token usage, and cost across all AI agents in real time</p></li><li class=mb-1><p class=font-18>Detect quality issues continuously with out-of-the-box and custom evaluators, including hallucination and drift detection</p></li><li class=mb-1><p class=font-18>Protect applications from prompt injection, sensitive data exposure, and unsafe outputs with proactive security scanning</p></li><li class=mb-1><p class=font-18>Correlate agent behavior with backend services, infrastructure, and real user sessions for full-stack root cause analysis</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="w-100 p-2 mt-md-4 mb-1 rounded" style=background-color:#efeaf6><p class=font-18><h3 class="mt-0 text-center">Datadog for Startups</h3><p class="mb-0 text-center">Stay lean while you grow. Get one year of free Datadog Pro. <a href=https://www.datadoghq.com/partner/datadog-for-startups/#apply>Apply now</a>.</p></p></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=llm-observability-common-questions><a class=text-black href=#llm-observability-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=llm-observability-what-is-datadog-agent-observability-and-how-does-it-work><a class=text-black href=#llm-observability-what-is-datadog-agent-observability-and-how-does-it-work>What is Datadog Agent Observability and how does it work?</a></dt><dd class=ps-0>Datadog Agent Observability helps engineering teams evaluate, improve, and trace AI agents across development and production in one platform. It connects offline experimentation — datasets, experiments, evaluators, and human review — with production observability, including end-to-end agent tracing, quality monitoring, security scanning, and full-stack correlation with backend services and real user sessions.</dd><dt class="border-0 ps-0" id=llm-observability-what-is-an-llm-span-and-how-is-it-different-from-other-spans><a class=text-black href=#llm-observability-what-is-an-llm-span-and-how-is-it-different-from-other-spans>What is an LLM span, and how is it different from other spans?</a></dt><dd class=ps-0>An LLM span is a single call to an LLM provider such as OpenAI or Anthropic. One agent workflow can generate multiple LLM spans — for example, a retrieval step, a reasoning call, and a tool-use call are each tracked as separate LLM spans within the same trace. Datadog bills only on LLM spans, not on tool spans, retrieval spans, or other workflow spans surrounding the model call. This means you pay for the actual AI work, not every step the agent takes to orchestrate it.</dd><dt class="border-0 ps-0" id=llm-observability-how-does-pricing-work-and-can-i-retain-additional-llm-spans><a class=text-black href=#llm-observability-how-does-pricing-work-and-can-i-retain-additional-llm-spans>How does pricing work, and can I retain additional LLM spans?</a></dt><dd class=ps-0><p>The Free tier includes up to 40K LLM spans per month with 15-day retention, unlimited context, and unlimited evaluations — no credit card required. The Pro tier starts at $<span x-text="pricing[region]['LLM-OBSERVABILITY-15DAY'] ? pricing[region]['LLM-OBSERVABILITY-15DAY'].on_demand_cost : ''">240</span> per month on-demand for the first 100K LLM spans, with lower rates at $<span x-text="pricing[region]['LLM-OBSERVABILITY-15DAY'] ? pricing[region]['LLM-OBSERVABILITY-15DAY'].month_to_month_cost : ''">200</span> per month month-to-month and $<span x-text="pricing[region]['LLM-OBSERVABILITY-15DAY'] ? pricing[region]['LLM-OBSERVABILITY-15DAY'].annual_cost : ''">160</span> per month on an annual commitment.</p><p>For additional LLM spans, we offer the following options:</p><ol><li>$<span x-text="pricing[region]['LLM-OBSERVABILITY-ADDL-10K'] ? pricing[region]['LLM-OBSERVABILITY-ADDL-10K'].annual_cost : ''">3.5</span> per 10K LLM spans (billed annually)</li><li>$<span x-text="pricing[region]['LLM-OBSERVABILITY-ADDL-10K'] ? pricing[region]['LLM-OBSERVABILITY-ADDL-10K'].month_to_month_cost : ''">4.20</span> per 10K LLM spans (billed month-to-month)</li><li>$<span x-text="pricing[region]['LLM-OBSERVABILITY-ADDL-10K'] ? pricing[region]['LLM-OBSERVABILITY-ADDL-10K'].on_demand_cost : ''">5.00</span> per 10K LLM spans (billed on-demand)</li></ol><p>Every tier includes the full agent engineering platform from day one, including tracing, evaluations, playground, datasets, experiments, annotations, dashboards, and CLI and MCP access. Extended data retention is available. See &ldquo;How long is data retained and can it be extended?&rdquo; for details. Multi-year and volume discounts are also available.</p></dd><dt class="border-0 ps-0" id=llm-observability-do-i-need-to-purchase-other-datadog-products-to-use-agent-observability><a class=text-black href=#llm-observability-do-i-need-to-purchase-other-datadog-products-to-use-agent-observability>Do I need to purchase other Datadog products to use Agent Observability?</a></dt><dd class=ps-0>No. Agent Observability is a standalone product and can be purchased without any other Datadog subscription. That said, teams that also use Datadog for APM, infrastructure monitoring, or Real User Monitoring gain additional value by correlating agent behavior with services, infra signals, and user sessions — all within the same platform and trace ID, without any extra configuration.</dd><dt class="border-0 ps-0" id=llm-observability-how-quickly-can-i-get-started><a class=text-black href=#llm-observability-how-quickly-can-i-get-started>How quickly can I get started?</a></dt><dd class=ps-0>Most teams are tracing agent workflows within minutes. You can instrument using the Python or Node.js SDK, the Java tracer, or via the HTTP API for any other environment. If you use orchestration frameworks like LangChain, CrewAI, or LiteLLM, or providers like OpenAI, Anthropic, or Bedrock, the SDK auto-captures traces with no manual instrumentation required. You can also set up using AI-assisted onboarding via Claude Code or Cursor with a single prompt. <a href=https://docs.datadoghq.com/llm_observability>Read the documentation</a>.</dd><dt class="border-0 ps-0" id=llm-observability-which-models-frameworks-and-languages-are-supported><a class=text-black href=#llm-observability-which-models-frameworks-and-languages-are-supported>Which models, frameworks, and languages are supported?</a></dt><dd class=ps-0>Agent Observability supports leading model providers including OpenAI, Anthropic, Gemini, Vertex AI, and Bedrock. Agent frameworks supported include LangChain, CrewAI, Pydantic AI, LiteLLM, and Strands Agents. Applications can be instrumented in Python, Node.js, or Java, and teams can bring any custom environment in via OpenTelemetry or the HTTP API.</dd><dt class="border-0 ps-0" id=llm-observability-is-sensitive-data-scanner-sds-included-in-agent-observability><a class=text-black href=#llm-observability-is-sensitive-data-scanner-sds-included-in-agent-observability>Is Sensitive Data Scanner (SDS) included in Agent Observability?</a></dt><dd class=ps-0>Yes. Sensitive Data Scanner is built into Agent Observability at no additional cost. For every 10K LLM spans, you receive an allotment of 1 GB of SDS processing. Agent Observability automatically scans, identifies, and redacts sensitive information — including personal data, financial records, and health information — from your LLM application inputs and outputs, helping prevent data leakage before it reaches users.</dd><dt class="border-0 ps-0" id=llm-observability-how-does-the-experiments-feature-work-and-is-it-available-to-all-customers><a class=text-black href=#llm-observability-how-does-the-experiments-feature-work-and-is-it-available-to-all-customers>How does the Experiments feature work, and is it available to all customers?</a></dt><dd class=ps-0>Experiments are included in Agent Observability. You can build versioned datasets from real production traces, run experiments to compare prompts, models, tools, or agent logic side by side, and track results in the Datadog UI or via the SDK. Online evaluations run automatically in production to catch regressions as they happen. Offline, you run structured experiments against curated datasets before deploying. Together they give you confidence that your application performs reliably across both real-world and controlled conditions.</dd><dt class="border-0 ps-0" id=llm-observability-how-long-is-data-retained-and-can-it-be-extended><a class=text-black href=#llm-observability-how-long-is-data-retained-and-can-it-be-extended>How long is data retained and can it be extended?</a></dt><dd class=ps-0><p>Trace data is retained for 15 days by default, and trace metrics are retained for 15 months. Experiment results are retained for 15 days by default, and datasets are versioned and stored for 3 years so you can always rerun experiments against the same baseline.</p><p>For extended retention, we offer the following retention add-ons:</p><ul><li>30-day retention at $<span x-text="pricing[region]['LLM-OBSERVABILITY-30DAY'] ? pricing[region]['LLM-OBSERVABILITY-30DAY'].on_demand_cost : ''">1.50</span> per 10K LLM spans per month (30-day trace retention, 6-month experiment retention)</li><li>60-day retention at $<span x-text="pricing[region]['LLM-OBSERVABILITY-60DAY'] ? pricing[region]['LLM-OBSERVABILITY-60DAY'].on_demand_cost : ''">3</span> per 10K LLM spans per month (60-day trace retention, 9-month experiment retention)</li><li>90-day retention at $<span x-text="pricing[region]['LLM-OBSERVABILITY-90DAY'] ? pricing[region]['LLM-OBSERVABILITY-90DAY'].on_demand_cost : ''">4</span> per 10K LLM spans per month (90-day trace retention, 12-month experiment retention)</li></ul></dd><dt class="border-0 ps-0" id=llm-observability-how-is-datadog-different-from-other-solutions><a class=text-black href=#llm-observability-how-is-datadog-different-from-other-solutions>How is Datadog different from other solutions?</a></dt><dd class=ps-0>Datadog connects development and production in one workflow, so teams can experiment with real production data, validate changes before rollout, and trace issues across the full application stack without switching tools. Agent Observability also unifies AI agent behavior with backend services, infrastructure, and real user sessions in the same platform SRE and DevOps teams already use to reduce context switching and speeding root cause analysis.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-65" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'rum',
                                    
                                        'session-replay',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'real-user-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=3><h2 class=text-md-center id=real-user-monitoring--session-replay><a class=text-black>Real User Monitoring & Session Replay</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Measure the end-to-end experience of web and mobile applications from your users’ perspective</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['RUM-INGESTED'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="RUM Measure">RUM Measure</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['RUM-INGESTED'] ? pricing[region]['RUM-INGESTED'].annual_cost : ''">0.15</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 sessions,<br>per month* on full traffic</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Monitor the availability and performance of your application across user sessions</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Collect every session to gain complete insights into user experiences across your applications.</p></li><li><p class="small fw-semibold">Monitor web and mobile app availability with 30+ out-of-the-box metrics—calculated on 100% of sessions for complete and accurate insights into app freezes, error rates, page load times, and more (15-month retention included).</p></li><li><p class="small fw-semibold">Create monitors, define SLOs, and build dashboards across the Datadog platform for end-to-end visibility.</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['RUM-INGESTED'] ? pricing[region]['RUM-INGESTED'].on_demand_cost : ''">0.22</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: RUM Measure" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['RUM-INVESTIGATE'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="RUM Investigate">RUM Investigate</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['RUM-INVESTIGATE'] ? pricing[region]['RUM-INVESTIGATE'].annual_cost : ''">3</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 sessions,<br>per month* on filtered sessions</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Focus on critical sessions to efficiently troubleshoot issues and optimize user experiences.</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Filter and retain only the most valuable sessions using flexible, no-code sampling directly in the UI without app deployments.</p></li><li><p class="small fw-semibold">Prioritize sessions exhibiting errors, crashes, slow performance, high-value user behavior, and more.</p></li><li><p class="small fw-semibold">Gain deep visibility into bugs and crashes with built-in Error Tracking and crash reporting tools.</p></li><li><p class="small fw-semibold">Retain sessions, views, and errors for 30 days, with 15-day retention for resources, long tasks, and vitals.</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['RUM-INVESTIGATE'] ? pricing[region]['RUM-INVESTIGATE'].on_demand_cost : ''">4.50</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: RUM Investigate" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6 offset-md-3
addon" x-data="{custom: false}" :class="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="Session Replay">Session Replay</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? pricing[region]['RUM-SESSION-REPLAY-ADD-ON'].annual_cost : ''">2.50</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 sessions,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Enhance RUM with video-like replays to see user issues firsthand across web and mobile</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">See user issues firsthand with video-like session replays for web and mobile.</p></li><li><p class="small fw-semibold">Debug faster using built-in DevTools to analyze errors and performance bottlenecks.</p></li><li><p class="small fw-semibold">Respect user privacy with inputs masked by default in every replay, and fine-grained masking options.</p></li><li><p class="small fw-semibold">Uncover engagement patterns by pairing replays with heatmaps and 30-day retention (currently only available for web applications)</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? pricing[region]['RUM-SESSION-REPLAY-ADD-ON'].on_demand_cost : ''">3.60</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Session Replay" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Sessions</p></li><li class="list-item mb-1"><p class=font-18>Views</p></li><li class="list-item mb-1"><p class=font-18>Actions</p></li><li class="list-item mb-1"><p class=font-18>Errors</p></li><li class="list-item mb-1"><p class=font-18>Resources</p></li><li class="list-item mb-1"><p class=font-18>Long Tasks</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Visual Replay of User Sessions</p></li><li class="list-item mb-1"><p class=font-18>Performance Vitals (Mobile & Core Web Vitals)</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box performance metrics</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box Dashboards</p></li><li class="list-item mb-1"><p class=font-18>Retention Filters</p></li><li class="list-item mb-1"><p class=font-18>Error Tracking</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class=col-12><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Frontend-to-backend visibility with the APM integration</p></li><li class=mb-1><p class=font-18>Query, analyze, visualize and alert on your application data</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=real-user-monitoring-common-questions><a class=text-black href=#real-user-monitoring-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: RUM" @click.prevent="
                  updateQueryParam('tab', 'rum');
                  selected_category = 'RUM';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'RUM' == selected_category ? 'active' : ''">RUM
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Session Replay" @click.prevent="
                  updateQueryParam('tab', 'session-replay');
                  selected_category = 'SESSION REPLAY';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'SESSION REPLAY' == selected_category ? 'active' : ''">Session Replay</span></div></div><div class=faq-tab-content id=pills-tabContent--real-user-monitoring><div class=faq-tab id=pills-rum x-show="'RUM' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=real-user-monitoring-rum-how-is-a-session-defined><a class=text-black href=#real-user-monitoring-rum-how-is-a-session-defined>How is a session defined?</a></dt><dd class=ps-0>A session is a user journey on your web application. It expires after 15 minutes of inactivity and lasts up to 4 hours. For a detailed explanation of user sessions, please see our <a href=https://docs.datadoghq.com/account_management/billing/rum/>docs</a>.</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-what-data-does-datadogs-rum-collect><a class=text-black href=#real-user-monitoring-rum-what-data-does-datadogs-rum-collect>What data does Datadog’s RUM collect?</a></dt><dd class=ps-0>We collect events across browser and mobile applications on various platforms. Our SDKs collect events automatically or can be instrumented to capture custom events. We capture the following events: page views and view loads, buttons clicked called actions, network requests called resources, and UI hangs called long tasks. We enrich all the events recorded with metadata called attributes. Refer to our <a href=https://docs.datadoghq.com/real_user_monitoring/browser/data_collected/>Browser</a> RUM and <a href=https://docs.datadoghq.com/real_user_monitoring/android/data_collected/>Android</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/ios/data_collected/>iOS</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/reactnative/>React Native</a>, and <a href=https://docs.datadoghq.com/real_user_monitoring/flutter/>Flutter</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/kotlin_multiplatform/data_collected>Kotlin Multiplatform</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/unity/data_collected>Unity</a>, and <a href=https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/roku/data_collected>Roku</a> RUM documentation</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-do-i-need-to-purchase-both-rum-measure-and-rum-investigate-skus><a class=text-black href=#real-user-monitoring-rum-do-i-need-to-purchase-both-rum-measure-and-rum-investigate-skus>Do I need to purchase both RUM Measure and RUM Investigate SKUs?</a></dt><dd class=ps-0><p>Yes—RUM Measure and RUM Investigate are designed to work together to give you full visibility and cost control.</p><ul><li>RUM Measure captures all sessions and powers <a href=https://docs.datadoghq.com/real_user_monitoring/rum_without_limits/metrics>30+ out-of-the-box performance metrics</a> for your web and mobile apps.</li><li>RUM Investigate lets you retain only the sessions that matter most—like those with errors, crashes, or high-value actions—based on <a href=https://docs.datadoghq.com/real_user_monitoring/rum_without_limits/retention_filters>configurable filters</a>. Retained sessions are stored for 30 days for deep troubleshooting.
You can also add Session Replay to any retained session for a visual playback of the user experience. Replay sessions are billed separately at $<span x-text="pricing[region]['RUM-SESSION-REPLAY-ADD-ON'] ? pricing[region]['RUM-SESSION-REPLAY-ADD-ON'].annual_cost : ''">2.50</span> per 1,000 sessions.</li></ul></dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-how-long-are-sessions-and-metrics-retained-for><a class=text-black href=#real-user-monitoring-rum-how-long-are-sessions-and-metrics-retained-for>How long are sessions and metrics retained for?</a></dt><dd class=ps-0>The retention policy for RUM sessions and session replays is 30 days. With OOTB metrics are generated on 100% of sessions (RUM Measure SKU) and are retained for 15 months.</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-are-the-out-of-the-box-metrics-charged-as-custom-metrics><a class=text-black href=#real-user-monitoring-rum-are-the-out-of-the-box-metrics-charged-as-custom-metrics>Are the out-of-the-box metrics charged as custom metrics?</a></dt><dd class=ps-0>No – Datadog will compute out-of-the-box metrics on the sessions that you send to RUM with the RUM Measure SKU at no additional cost. If you wish to generate your own <a href=https://docs.datadoghq.com/real_user_monitoring/platform/generate_metrics/>custom metrics</a>, these will computed on 100% of your traffic, retained for 15 months, and charged as additional metrics (<a href="https://docs.datadoghq.com/account_management/billing/custom_metrics/?tab=countrate">learn more</a>).</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-what-mobile-languages-do-you-support-instrumentation-for><a class=text-black href=#real-user-monitoring-rum-what-mobile-languages-do-you-support-instrumentation-for>What Mobile languages do you support instrumentation for?</a></dt><dd class=ps-0>We currently support <a href="https://docs.datadoghq.com/real_user_monitoring/android/?tab=us">Android</a> (Java and Kotlin), <a href="https://docs.datadoghq.com/real_user_monitoring/ios/?tab=us">iOS</a> (Swift and Objective-C), <a href=https://docs.datadoghq.com/real_user_monitoring/reactnative/>React Native</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/flutter/>Flutter</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/unity/setup>Unity</a>, <a href="https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/kotlin_multiplatform/setup?tab=rum">Kotlin Multiplatform</a>, and <a href="https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/roku/setup?tab=rum">Roku</a>.</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-can-i-view-logs-from-my-browser-or-mobile-app-in-rum><a class=text-black href=#real-user-monitoring-rum-can-i-view-logs-from-my-browser-or-mobile-app-in-rum>Can I view logs from my browser or mobile app in RUM?</a></dt><dd class=ps-0>Yes, these logs are automatically tied to the corresponding RUM session, making it easy to monitor when they happen during the user journey.</dd><dt class="border-0 ps-0" id=real-user-monitoring-rum-how-can-i-begin-setting-up-for-rum><a class=text-black href=#real-user-monitoring-rum-how-can-i-begin-setting-up-for-rum>How can I begin setting up for RUM?</a></dt><dd class=ps-0>Setup steps can be found in our docs: <a href="https://docs.datadoghq.com/real_user_monitoring/installation/?tab=us">Browser</a>, <a href=https://docs.datadoghq.com/real_user_monitoring/session_replay/#setup>Session Replay</a>, <a href=http://docs.datadoghq.com/real_user_monitoring/android/>Mobile</a>.</dd></dl></div><div class=faq-tab id=pills-session-replay x-show="'SESSION REPLAY' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=real-user-monitoring-session-replay-how-does-session-replay-work><a class=text-black href=#real-user-monitoring-session-replay-how-does-session-replay-work>How does Session Replay work?</a></dt><dd class=ps-0>Session Replay works differently for web and mobile applications. For web ones running on desktop browsers or mobile browsers, it captures changes in the web page code, called DOM and DOM-mutations, to recreate a user’s experience in real-time in the browser. For mobile ones, it flattens the view tree and transforms it into style-rich wireframes, to recompose the UI and end-user’s experience at the right view port.</dd><dt class="border-0 ps-0" id=real-user-monitoring-session-replay-how-does-the-billing-work-for-session-replay><a class=text-black href=#real-user-monitoring-session-replay-how-does-the-billing-work-for-session-replay>How does the billing work for Session Replay?</a></dt><dd class=ps-0><p>It depends on the SDK versions used:</p><ul><li>From Browser <a href=https://github.com/DataDog/browser-sdk/releases/tag/v5.0.0>v5.0.0</a>, iOS <a href=https://github.com/DataDog/dd-sdk-ios/releases/tag/2.22.0>2.22.0</a>, Android <a href=https://github.com/DataDog/dd-sdk-android/releases/tag/2.17.0>2.17.0</a>, and React Native <a href=https://github.com/DataDog/dd-sdk-reactnative/releases/tag/2.6.0>2.6.0</a>, Sessions are billed under “RUM & Session Replay” or “RUM” based on whether they include a Replay</li><li>For earlier versions of our Browser SDK, billing is based on the sampling rate, regardless of Replay content. Please see our <a href=https://docs.datadoghq.com/real_user_monitoring/guide/browser-sdk-upgrade/#only-pay-for-session-replay-when-the-session-captures-a-recording>documentation</a> for more detail.</li><li>For earlier versions of our iOS, Android, and React Native SDKs, Sessions are always charged under the “RUM” plan, regardless of Replay content</li></ul><p>Note: if you plan on collecting both Sessions with and without a Replay, you can consider committing to both “RUM” and “RUM & Session Replay” plans to optimize your usage.</p></dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-66" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'api--browser',
                                    
                                        'mobile-app',
                                    
                                        'continuous',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'synthetic-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=5><h2 class=text-md-center id=synthetic-testing--monitoring><a class=text-black>Synthetic Testing & Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">API, Browser and Mobile App Tests for proactive, end-to-end visibility</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['SYNTHETICS-1K'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Browser Testing">Browser Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SYNTHETICS-1K'] ? pricing[region]['SYNTHETICS-1K'].annual_cost : ''">12</span><div class=price-helper-wrapper><span class="price-helper small">Per thousand test runs,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Easily monitor critical user journeys</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Record tests without code</p></li><li><p class="small fw-semibold">Intelligent, self-maintaining tests</p></li><li><p class="small fw-semibold">View screenshots and front-end errors for every step</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SYNTHETICS-1K'] ? pricing[region]['SYNTHETICS-1K'].on_demand_cost : ''">18</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Browser Testing" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['CI-MOBILE-APP-TEST'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Mobile App Testing">Mobile App Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CI-MOBILE-APP-TEST'] ? pricing[region]['CI-MOBILE-APP-TEST'].annual_cost : ''">50</span><div class=price-helper-wrapper><span class="price-helper small">Per hundred test runs,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Proactively monitor your key business flows using real devices</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Record tests without code</p></li><li><p class="small fw-semibold">Run tests on real Android and iOS devices</p></li><li><p class="small fw-semibold">Intelligent, self-maintaining tasks</p></li><li><p class="small fw-semibold">View screenshots and front-end errors for every step</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CI-MOBILE-APP-TEST'] ? pricing[region]['CI-MOBILE-APP-TEST'].on_demand_cost : ''">72</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Mobile App Testing" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['SYNTHETICS-10K'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="API Testing">API Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SYNTHETICS-10K'] ? pricing[region]['SYNTHETICS-10K'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per 10K test runs, per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Proactively monitor site availability</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Monitor uptime SLAs and SLOs</p></li><li><p class="small fw-semibold">Globally managed locations</p></li><li><p class="small fw-semibold">Sophisticated alerting capabilities</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SYNTHETICS-10K'] ? pricing[region]['SYNTHETICS-10K'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: API Testing" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['network_path'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Network Path<br>Testing">Network Path<br>Testing</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['network_path'] ? pricing[region]['network_path'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 tests,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Proactively monitor network impact on application performance</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Pinpoint root cause fast with a hop by hop view of network degradations impacting your applications</p></li><li><p class="small fw-semibold">Test real-world conditions from global locations, private cloud environments or your own devices</p></li><li><p class="small fw-semibold">Proactively catch issues and get alerts on packet loss or latency</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['network_path'] ? pricing[region]['network_path'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Network Path<br>Testing" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12
add-on-row" x-data="{custom: false}" :class="pricing[region]['CI-APP-TEST'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><i class="icon-plus-2 text-center"></i><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Continuous Testing (add-on)">Continuous Testing (add-on)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CI-APP-TEST'] ? pricing[region]['CI-APP-TEST'].annual_cost : ''">79</span><div class=price-helper-wrapper><span class="price-helper small">Per additional parallelization,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Increase the speed of your test runs in the CI</p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Run multiple tests at the same time across your test environments to expedite release cycles and reduce test durations</p></li><li><p class="small fw-semibold">Analyze tests across your pipelines in the Synthetic Monitoring & Continuous Testing Explorer and search using facets on test durations, commit author, pipeline, and more</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CI-APP-TEST'] ? pricing[region]['CI-APP-TEST'].on_demand_cost : ''">114</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Continuous Testing (add-on)" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Track site uptime and latency</p></li><li class="list-item mb-1"><p class=font-18>Understand global performance</p></li><li class="list-item mb-1"><p class=font-18>Track SLAs and SLOs</p></li><li class="list-item mb-1"><p class=font-18>Customize frequency of test runs</p></li><li class="list-item mb-1"><p class=font-18>Latency display of DNS, SSL, TTFB, and more.</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Web-Recorder for code-free test creation</p></li><li class="list-item mb-1"><p class=font-18>AI-driven Self-Maintaining Tests</p></li><li class="list-item mb-1"><p class=font-18>Waterfall visualization and screenshots</p></li><li class="list-item mb-1"><p class=font-18>Real-time alerting with rich context</p></li><li class="list-item mb-1"><p class=font-18>Easy sorting and filtering with tags</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Full stack visibility</p></li><li class=mb-1><p class=font-18>Pivot to related metrics, traces, and logs</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=synthetic-monitoring-common-questions><a class=text-black href=#synthetic-monitoring-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: API & Browser" @click.prevent="
                  updateQueryParam('tab', 'api--browser');
                  selected_category = 'API & BROWSER';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'API & BROWSER' == selected_category ? 'active' : ''">API & Browser
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Mobile App" @click.prevent="
                  updateQueryParam('tab', 'mobile-app');
                  selected_category = 'MOBILE APP';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'MOBILE APP' == selected_category ? 'active' : ''">Mobile App
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Continuous" @click.prevent="
                  updateQueryParam('tab', 'continuous');
                  selected_category = 'CONTINUOUS';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'CONTINUOUS' == selected_category ? 'active' : ''">Continuous</span></div></div><div class=faq-tab-content id=pills-tabContent--synthetic-monitoring><div class=faq-tab id=pills-api--browser x-show="'API & BROWSER' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-whats-the-difference-between-api-tests-and-browser-tests><a class=text-black href=#synthetic-monitoring-api--browser-whats-the-difference-between-api-tests-and-browser-tests>What’s the difference between API Tests and Browser Tests?</a></dt><dd class=ps-0>API Tests monitor single endpoints or URLs, whereas Browser Tests monitor web business transactions or web user journeys that may involve several actions and pages. Multistep API tests are also available to chain several API requests together.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-are-you-able-to-alert-on-synthetic-monitors><a class=text-black href=#synthetic-monitoring-api--browser-are-you-able-to-alert-on-synthetic-monitors>Are you able to alert on Synthetic monitors?</a></dt><dd class=ps-0>Yes, alerts are built in and triggered automatically when your tests fail. Datadog also integrates with your favorite collaboration/communication tools such as Slack, Pagerduty, ServiceNow, and more.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-can-i-view-endpoint-requests-end-to-end><a class=text-black href=#synthetic-monitoring-api--browser-can-i-view-endpoint-requests-end-to-end>Can I view endpoint requests end-to-end?</a></dt><dd class=ps-0>Yes, with the out-of-the-box APM integration, you are able to tie back any synthetic tests to their corresponding back-end, code-level insights for minimal mean time to resolution.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-is-there-any-extra-charge-for-using-private-locations><a class=text-black href=#synthetic-monitoring-api--browser-is-there-any-extra-charge-for-using-private-locations>Is there any extra charge for using private locations?</a></dt><dd class=ps-0>No. There are no additional costs to set up a private location. All test runs to a private location are billed just as they are to a managed location.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-what-counts-as-an-api-test-run><a class=text-black href=#synthetic-monitoring-api--browser-what-counts-as-an-api-test-run>What counts as an API test run?</a></dt><dd class=ps-0><p>HTTP, SSL, DNS, TCP, and ICMP all fall under API test billing. Each hit being made on your endpoint counts as a single test run. If a test is set to run from 3 locations every minute, the test will count as 180 test runs in an hour.</p><p>For multistep API tests, each step counts as an individual API test.</p></dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-what-counts-as-a-browser-test-run><a class=text-black href=#synthetic-monitoring-api--browser-what-counts-as-a-browser-test-run>What counts as a browser test run?</a></dt><dd class=ps-0>Each simulation of a full transaction (25 steps) counts as a single test run. A single test containing 50 steps counts as 2 test runs on each execution. So, running a 51 step test (counting as 3 test runs) every 15 minutes from 5 different locations and 2 different devices means the test will count as 120 test runs in an hour.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-how-do-browser-test-subtests-participate-in-synthetics-billing><a class=text-black href=#synthetic-monitoring-api--browser-how-do-browser-test-subtests-participate-in-synthetics-billing>How do browser test subtests participate in Synthetics billing?</a></dt><dd class=ps-0>Subtests are treated just as any other step in the browser test. Therefore, we bill a subtest as part of the overall test execution. So if a user sets up a browser test with 3 subtests, that each have 5 steps nested, that would amount to a total of 15 steps.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-api--browser-is-there-any-extra-charge-for-enabling-synthetic-rum-data-collection-on-browser-tests><a class=text-black href=#synthetic-monitoring-api--browser-is-there-any-extra-charge-for-enabling-synthetic-rum-data-collection-on-browser-tests>Is there any extra charge for enabling Synthetic RUM data collection on Browser Tests?</a></dt><dd class=ps-0>No. Synthetic RUM data collection comes free of charge with Synthetic Testing and Monitoring.</dd></dl></div><div class=faq-tab id=pills-mobile-app x-show="'MOBILE APP' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-how-is-mobile-app-testing-billed><a class=text-black href=#synthetic-monitoring-mobile-app-how-is-mobile-app-testing-billed>How is Mobile App Testing billed?</a></dt><dd class=ps-0>Similar to API and Browser Synthetic Testing, Mobile App Testing is billed per test run.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-is-there-a-limit-of-the-number-of-steps-in-a-test-run><a class=text-black href=#synthetic-monitoring-mobile-app-is-there-a-limit-of-the-number-of-steps-in-a-test-run>Is there a limit of the number of steps in a test run?</a></dt><dd class=ps-0>No. However Mobile App Testing does group test steps into buckets with each set of 25 steps counted as an individual test run. For example, tests with 1-25 steps will count as 1 run, tests with 25-50 will count as 2 runs, tests with 51-75 will count as 3 runs and so on.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-how-are-test-runs-calculated-in-mobile-app-testing><a class=text-black href=#synthetic-monitoring-mobile-app-how-are-test-runs-calculated-in-mobile-app-testing>How are test runs calculated in Mobile App Testing?</a></dt><dd class=ps-0>To calculate test runs take the number of buckets (sets of 25 steps) you have in your test and multiply this by the number of devices you have selected for your test. For example, if you have a test with 26 steps and 2 devices selected this will count as 4 test runs (2 sets of 25 steps * 2 devices) and if you run this test on an hourly basis this will come out to 96 test runs per day (2 sets of 25 steps * 2 devices * 24 hours).</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-does-mobile-app-testing-use-real-devices-or-emulators--virtual-devices><a class=text-black href=#synthetic-monitoring-mobile-app-does-mobile-app-testing-use-real-devices-or-emulators--virtual-devices>Does Mobile App Testing use real devices or emulators / virtual devices?</a></dt><dd class=ps-0>Mobile App Testing uses real devices, i.e. physical phones and tablets which are connected via the cloud, to provide the most realistic testing possible. With real devices we can more accurately represent the hardware, software and network conditions your actual users will face.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-how-does-mobile-app-testing-on-real-devices-work><a class=text-black href=#synthetic-monitoring-mobile-app-how-does-mobile-app-testing-on-real-devices-work>How does Mobile App Testing on real devices work?</a></dt><dd class=ps-0>We have a fleet of real devices maintained in our managed cloud infrastructure. Once you select your preferred device (iOS or Android) to test your app with, Datadog MAT connects with that real device over cloud and sets the app for the test.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-what-devices-does-mobile-app-testing-support><a class=text-black href=#synthetic-monitoring-mobile-app-what-devices-does-mobile-app-testing-support>What devices does Mobile App Testing support?</a></dt><dd class=ps-0>MAT supports the most popular devices (smartphones and tablets) across Android and iOS, including the iPhone, iPad, Samsung Galaxy, Google Pixel and more, and we are constantly increasing support for new devices and OS versions as they become available.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-what-data-center-is-mobile-app-testing-available-in><a class=text-black href=#synthetic-monitoring-mobile-app-what-data-center-is-mobile-app-testing-available-in>What data center is Mobile App Testing available in?</a></dt><dd class=ps-0>Datadog Mobile App Testing is currently available to all US1, US5, and EU1 customers. All app tests will be run from the AWS US West region.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-how-can-i-begin-setup-for-mobile-app-testing><a class=text-black href=#synthetic-monitoring-mobile-app-how-can-i-begin-setup-for-mobile-app-testing>How can I begin setup for Mobile App Testing?</a></dt><dd class=ps-0>To begin testing with MAT: (1) Upload the app you would like to test to the platform, (2) Select Mobile Application Test from the modal New Test under UX Monitoring or on the Synthetics home page, (3) Select the devices you would like to test with, (4) Record your test case and (5) execute your test! You can read more about how to configure your tests <a href=https://docs.datadoghq.com/mobile_app_testing/mobile_app_tests/>here</a>.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-can-i-run-tests-in-parallel-with-mobile-app-testing><a class=text-black href=#synthetic-monitoring-mobile-app-can-i-run-tests-in-parallel-with-mobile-app-testing>Can I run tests in parallel with Mobile App Testing?</a></dt><dd class=ps-0>Yes. By default, tests executed through the API / CI are executed sequentially however if you would like to run your tests in parallel for faster execution you can purchase additional concurrency slots with our <a href="https://www.datadoghq.com/pricing/?product=continuous-testing#products">Continuous Testing</a> SKU. Learn more about Continuous Testing <a href=https://docs.datadoghq.com/continuous_testing/>here</a>.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-can-i-set-up-alerts-on-mobile-app-testing-monitors><a class=text-black href=#synthetic-monitoring-mobile-app-can-i-set-up-alerts-on-mobile-app-testing-monitors>Can I set up alerts on Mobile App Testing monitors?</a></dt><dd class=ps-0>Yes, alerts are built in and triggered automatically when your tests fail. Datadog also integrates with your favorite collaboration/communication tools such as Slack, Pagerduty, ServiceNow, and more.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-does-mobile-app-testing-support-testing-progressive-web-apps><a class=text-black href=#synthetic-monitoring-mobile-app-does-mobile-app-testing-support-testing-progressive-web-apps>Does Mobile App Testing support testing progressive web apps?</a></dt><dd class=ps-0>No. Datadog Mobile App Testing only tests native Android and iOS apps. If you would like to test your progressive web app, you can use Datadog’s Browser Testing product which allows you to test both desktop and mobile websites. Learn more about Browser Testing <a href="https://docs.datadoghq.com/synthetics/browser_tests/?tab=requestoptions">here</a>.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-what-are-self-maintaining-tests-and-how-do-they-work><a class=text-black href=#synthetic-monitoring-mobile-app-what-are-self-maintaining-tests-and-how-do-they-work>What are “Self-maintaining Tests” and how do they work?</a></dt><dd class=ps-0>The self-maintaining test capability uses an AI-driven multi-locator algorithm to detect UI changes in the app and automatically updates your tests. This reduces alert fatigue and makes test maintenance easy.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-does-mobile-app-testing-currently-provide-end-to-end-visibility-with-apm-and-rum><a class=text-black href=#synthetic-monitoring-mobile-app-does-mobile-app-testing-currently-provide-end-to-end-visibility-with-apm-and-rum>Does Mobile App Testing currently provide end-to-end visibility with APM and RUM?</a></dt><dd class=ps-0>Mobile App Testing currently integrates with RUM, similar to <a href=https://docs.datadoghq.com/synthetics/browser_tests/test_results/>Browser Testing</a>, allowing you to correlate synthetic tests with real-user data and insights. At this time, Mobile App Testing does not directly link with APM to provide out-of-the-box backend traces (traces are still available but requires you to manually correspond with your tests).</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-how-do-mobile-app-test-subtests-participate-in-synthetics-billing><a class=text-black href=#synthetic-monitoring-mobile-app-how-do-mobile-app-test-subtests-participate-in-synthetics-billing>How do mobile app test subtests participate in Synthetics billing?</a></dt><dd class=ps-0>Subtests are treated just as any other step in the mobile app test. Therefore, we bill a subtest as part of the overall test execution. So if a user sets up a mobile app test with 3 subtests, that each have 5 steps nested, that would amount to a total of 15 steps.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-mobile-app-are-there-other-billing-options-available><a class=text-black href=#synthetic-monitoring-mobile-app-are-there-other-billing-options-available>Are there other billing options available?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly and hourly plans</a> are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd></dl></div><div class=faq-tab id=pills-continuous x-show="'CONTINUOUS' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-what-is-continuous-testing><a class=text-black href=#synthetic-monitoring-continuous-what-is-continuous-testing>What is Continuous Testing?</a></dt><dd class=ps-0><p>Datadog <a href=https://www.datadoghq.com/product/continuous-testing/>Continuous Testing</a> is a comprehensive toolkit in the development cycle that offers integration and end-to-end testing with codeless test setup, self-healing capability, and seamless integration with CI providers (GitHub Actions, Azure DevOps, CircleCI, GitLab, and Jenkins) and collaboration tools to help you ship high-quality features to your users quickly.</p><p>Running tests in your CI/CD pipelines today is included with your API and Browser Testing test runs, and tests will run sequentially (one after another). If you would like to increase the speed of testing in your CI/CD pipelines, you can purchase additional Parallel Testing speed (parallelization), which makes some tests run at the same time.</p><p>For example, 1 Parallel Testing additional speed offers an additional parallel slot, allowing you to run 2 tests in parallel; 2 Parallel Testing additional speed offers 2 additional parallel slots, allowing you to run 3 tests in parallel; and so on. This helps you run more tests in parallel (at the same time), and reduce the overall execution speed of your test suite.</p></dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-am-i-limited-to-a-certain-number-of-test-runs-based-on-my-additional-parallelization><a class=text-black href=#synthetic-monitoring-continuous-am-i-limited-to-a-certain-number-of-test-runs-based-on-my-additional-parallelization>Am I limited to a certain number of test runs based on my additional parallelization?</a></dt><dd class=ps-0><p>No. With Parallel Testing, you can run as many tests as you need in your CI/CD pipelines. Parallelization ensures you can run more of those tests at the same time, and ultimately reduce the duration of testing in your CI/CD pipelines.</p><p>For example, if you want to run 100 tests in a CI pipeline and each test takes 10 seconds to run:</p><ul><li>WITHOUT parallelization, your tests will run sequentially and your pipeline will take roughly <strong>17 minutes to complete.</strong></li><li>WITH parallelization, if you purchase (for example) an additional speed of 4 Parallel Testing, your 100 tests will run over a total of 5 parallel slots, and your pipeline will now take roughly <strong>3 minutes to complete.</strong></li></ul><p><strong>Note:</strong> In both cases, your 100 test runs will contribute to your API or Browser Testing test run quotas.</p></dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-can-i-reuse-my-synthetic-tests-that-i-use-to-monitor-my-production-environments><a class=text-black href=#synthetic-monitoring-continuous-can-i-reuse-my-synthetic-tests-that-i-use-to-monitor-my-production-environments>Can I reuse my Synthetic tests that I use to monitor my production environments?</a></dt><dd class=ps-0>Yes. With Parallel Testing, you can use the same Synthetic tests you have configured for production monitoring across all of your staging, QA, and pre-production environments. Through variable overrides and custom configuration values, you can benefit from one test throughout your entire software development lifecycle.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-what-are-parallel-tests><a class=text-black href=#synthetic-monitoring-continuous-what-are-parallel-tests>What are parallel tests?</a></dt><dd class=ps-0><p>Parallel tests are tests that run simultaneously in your continuous integration and delivery pipelines to ensure that you can:</p><ul><li>Reduce pipeline duration and ship new features faster</li><li>Increase development confidence and speed of delivery</li><li>Have complete test coverage and reduce the volume of production-breaking bugs from reaching your codebase</li></ul><p>As an example, if you needed to run 60 tests and each test took one minute to run, it would take you one hour to run those tests sequentially. However, running those tests in parallel with a parallelization value of 60, you could run all your tests at the same time and within one minute, saving you 59 minutes to tackle other business-critical tasks. That's the power of Parallel Testing.</p></dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-can-i-see-the-full-trace-of-a-test-if-i-also-use-datadog-apm><a class=text-black href=#synthetic-monitoring-continuous-can-i-see-the-full-trace-of-a-test-if-i-also-use-datadog-apm>Can I see the full trace of a test if I also use Datadog APM?</a></dt><dd class=ps-0>Yes! If you instrument your services with APM, you will have a complete 360-degree visibility into your applications and services—from your frontend user experience right through to your backend trace. Find more information <a href=https://docs.datadoghq.com/synthetics/apm/#overview>here</a>.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-what-counts-as-a-browser-test-run><a class=text-black href=#synthetic-monitoring-continuous-what-counts-as-a-browser-test-run>What counts as a browser test run?</a></dt><dd class=ps-0>Each simulation of a web transaction (up to 25 steps) counts as a single browser test run. A single test containing 50 steps would count as two test runs on each execution. For example, running a 60-step test (three test runs) every 15 minutes from five different locations and two different devices equates to 120 test runs in one hour.</dd><dt class="border-0 ps-0" id=synthetic-monitoring-continuous-how-do-subtests-count-toward-billing><a class=text-black href=#synthetic-monitoring-continuous-how-do-subtests-count-toward-billing>How do subtests count toward billing?</a></dt><dd class=ps-0>Subtests are simply a set of steps within a browser test. Therefore, we count a subtest as part of the overall browser test execution. For example, if you set up a browser test with only three subtests and each subtest had five steps, that would amount to a total of 15 steps, or one browser test run.</dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-67" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'cloud-network-monitoring',
                                    
                                        'network-device-monitoring',
                                    
                                        'network-path',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'network-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=5><h2 class=text-md-center id=network-monitoring><a class=text-black>Network Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Unify network visibility across your clouds, applications, and devices</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Cloud Network Monitoring" @click.prevent="
                                                        updateQueryParam('tab', 'cloud-network-monitoring')
                                                        selected_category = 'CLOUD NETWORK MONITORING'; 
                                                        planOpen = false;
                                                    " :class="'CLOUD NETWORK MONITORING' == selected_category ? 'active' : ''">Cloud Network Monitoring
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Network Device Monitoring" @click.prevent="
                                                        updateQueryParam('tab', 'network-device-monitoring')
                                                        selected_category = 'NETWORK DEVICE MONITORING'; 
                                                        planOpen = false;
                                                    " :class="'NETWORK DEVICE MONITORING' == selected_category ? 'active' : ''">Network Device Monitoring
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Network Path" @click.prevent="
                                                        updateQueryParam('tab', 'network-path')
                                                        selected_category = 'NETWORK PATH'; 
                                                        planOpen = false;
                                                    " :class="'NETWORK PATH' == selected_category ? 'active' : ''">Network Path</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['CLOUD NETWORK MONITORING',].includes(selected_category) && pricing[region]['HOSTS-NETWORK'] && product === 'network-monitoring'
            ? 'd-flex group'
            : ['CLOUD NETWORK MONITORING',].includes(selected_category) && product === 'network-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Cloud Network Monitoring">Cloud Network Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-NETWORK'] ? pricing[region]['HOSTS-NETWORK'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Understand network traffic patterns and search with tags</p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Built for hybrid multi-cloud and on-premises environments</p></li><li><p class="small fw-semibold">Correlate applications, infrastructure, and networks faster</p></li><li><p class="small fw-semibold">Focused remediations with intelligent insights and alerting</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOSTS-NETWORK'] ? pricing[region]['HOSTS-NETWORK'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Cloud Network Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="['NETWORK DEVICE MONITORING',].includes(selected_category) && pricing[region]['SNMP-DEVICE'] && product === 'network-monitoring'
            ? 'd-flex group'
            : ['NETWORK DEVICE MONITORING',].includes(selected_category) && product === 'network-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Network Device Monitoring">Network Device Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SNMP-DEVICE'] ? pricing[region]['SNMP-DEVICE'].annual_cost : ''">7</span><div class=price-helper-wrapper><span class="price-helper small">Per device,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Monitor the health and performance of on-premise network devices</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box metrics collected from switches, routers, firewalls and more</p></li><li><p class="small fw-semibold">Visualize interface bandwidth and utilization, disk, fan, and other hardware health</p></li><li><p class="small fw-semibold">Comprehensive and customizable alerts</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SNMP-DEVICE'] ? pricing[region]['SNMP-DEVICE'].on_demand_cost : ''">10.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Network Device Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="['NETWORK DEVICE MONITORING',].includes(selected_category) && pricing[region]['NETWORK-DEVICE-WIRELESS'] && product === 'network-monitoring'
            ? 'd-flex group'
            : ['NETWORK DEVICE MONITORING',].includes(selected_category) && product === 'network-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Wireless Access Points">Wireless Access Points</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['NETWORK-DEVICE-WIRELESS'] ? pricing[region]['NETWORK-DEVICE-WIRELESS'].annual_cost : ''">4</span><div class=price-helper-wrapper><span class="price-helper small">Per device,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Monitor the health and performance of wireless access points</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box metric collection from wireless access points vendors including Cisco Meraki</p></li><li><p class="small fw-semibold">Visualize the health of your wireless network and identify performance bottlenecks</p></li><li><p class="small fw-semibold">Comprehensive and customizable alerts</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['NETWORK-DEVICE-WIRELESS'] ? pricing[region]['NETWORK-DEVICE-WIRELESS'].on_demand_cost : ''">5.76</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Wireless Access Points" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4
addon" x-data="{
             open: false,
             custom: false,
             retention: '30-day retention',
             selected_retention_pricing_data_key: '',
             dropdownStyle: {},
             positionDropdown() {
                 const button = this.$refs.dropdownButton;
                 const buttonRect = button.getBoundingClientRect();
                 const parentRect = this.$el.getBoundingClientRect();

                 this.dropdownStyle = {
                     position: 'absolute',
                     top: `${buttonRect.bottom - parentRect.top}px`,
                     left: `${buttonRect.left - parentRect.left}px`
                 };
             }
         }" x-init="selected_retention_pricing_data_key = 'NETFLOW-MONITORING'" x-effect="if (open) positionDropdown()" :class="['NETWORK DEVICE MONITORING',].includes(selected_category) && (pricing[region][selected_retention_pricing_data_key] || custom) && product === 'network-monitoring'
            ? 'd-flex' 
            : ['NETWORK DEVICE MONITORING',].includes(selected_category) && product === 'network-monitoring'
            ? `d-flex ${region}-pricing-disabled`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
addon border px-2 pt-1 pb-2 pb-md-0"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
addon text-center" data-name="NetFlow<br>Monitoring">NetFlow<br>Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><a class="small fw-semibold text-uppercase align-self-center d-block" role=button type=button :aria-expanded=open @click="open = !open" aria-label="Pricing options" aria-haspopup=true x-ref=dropdownButton :data-dd-action-name="open ? 'card: dropdown: close' : 'card: dropdown: open'"><span class=text-content x-text=retention>30-day retention</span>
<i class=icon-down-carrot-normal style=font-size:12px></i></a><div class=span-dropdown aria-label="Pricing options" :aria-expanded=open x-show=open @click.outside="open = false" x-ref=dropdownMenu x-bind:style=dropdownStyle><a class=dropdown-item href=# @click.prevent="retention = '15-day retention'; selected_retention_pricing_data_key = 'NETFLOW-MONITORING-15DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 15-day retention">15-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '30-day retention'; selected_retention_pricing_data_key = 'NETFLOW-MONITORING'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 30-day retention">30-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '60-day retention'; selected_retention_pricing_data_key = 'NETFLOW-MONITORING-60DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 60-day retention">60-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = '90-day retention'; selected_retention_pricing_data_key = 'NETFLOW-MONITORING-90DAY'; custom = false; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: 90-day retention">90-day retention</a>
<a class=dropdown-item href=# @click.prevent="retention = 'Greater than 90 days'; custom = true; open = false; $dispatch('plan-dropdown-changed')" data-dd-action-name="card: dropdown: Greater than 90 days">Greater than 90 days</a></div><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].annual_cost : ''">0.65</span><div class=price-helper-wrapper><span class="price-helper small">Per million records,<br>per month*</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: NetFlow<br>Monitoring">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Monitor traffic trends and bandwidth usage for NetFlow-enabled devices</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Identifying top talkers, top listeners, and top protocols</p></li><li><p class="small fw-semibold">Pivot your view by filtering NetFlow records to fields such as interface, device, and application</p></li><li><p class="small fw-semibold">Visualize your NetFlow data over time with our OOTB dashboard</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region][selected_retention_pricing_data_key] ? pricing[region][selected_retention_pricing_data_key].on_demand_cost : ''">0.94</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: NetFlow<br>Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a>
<a data-dd-action-name="card: button: lets talk: NetFlow<br>Monitoring" class="btn cta-btn text-white w-100 js-modal-demo custom-pricing-cta cursor-pointer my-2" x-show=custom>Let's Talk</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['NETWORK PATH',].includes(selected_category) && pricing[region]['network_path'] && product === 'network-monitoring'
            ? 'd-flex group'
            : ['NETWORK PATH',].includes(selected_category) && product === 'network-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Network Path">Network Path</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['network_path'] ? pricing[region]['network_path'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per 1,000 tests,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Visualize hop-by-hop traffic through your network</p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Visualize the hop-by-hop path taken by traffic between applications across cloud networks, physical networks, and the WAN</p></li><li><p class="small fw-semibold">Quickly root cause any network-related issue with insights into end-to-end packet loss and latency and hop-by-hop latency</p></li><li><p class="small fw-semibold">Correlate network traffic to application and infrastructure metrics to break silos and reduce MTTR</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['network_path'] ? pricing[region]['network_path'].on_demand_cost : ''">7.20</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Network Path" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list" x-show="'CLOUD NETWORK MONITORING' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Gives an cloud network health overview of the environment</p></li><li class="list-item mb-1"><p class=font-18>Flags network bottlenecks and risks before user impact</p></li><li class="list-item mb-1"><p class=font-18>Cross-service and cross-infrastructure traffic analysis</p></li><li class="list-item mb-1"><p class=font-18>Cloud cost traffic breakdown</p></li></ul></div><div class="col-md-6 feature-list" x-show="'CLOUD NETWORK MONITORING' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Security insights with DNS visibility</p></li><li class="list-item mb-1"><p class=font-18>Hybrid, on-premises, and cloud connectivity coverage</p></li><li class="list-item mb-1"><p class=font-18>Advanced tagging and metadata for curated views</p></li><li class="list-item mb-1"><p class=font-18>Deployment and activation in minutes</p></li></ul></div><div class="col-md-6 feature-list" x-show="'NETWORK DEVICE MONITORING' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Network topology visualizations</p></li><li class="list-item mb-1"><p class=font-18>Automated device discovery</p></li><li class="list-item mb-1"><p class=font-18>Drill down into interface performance</p></li><li class="list-item mb-1"><p class=font-18>Hop-by-hop network path visualization</p></li></ul></div><div class="col-md-6 feature-list" x-show="'NETWORK DEVICE MONITORING' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Hybrid, on-premises, and cloud connectivity coverage</p></li><li class="list-item mb-1"><p class=font-18>Advanced tagging and metadata for curated views</p></li><li class="list-item mb-1"><p class=font-18>Deployment and activation in minutes</p></li></ul></div><div class="col-md-6 feature-list" x-show="'NETWORK PATH' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Hop-by-hop network path visualization</p></li><li class="list-item mb-1"><p class=font-18>Monitor paths across on-prem, VPCs, and SaaS providers</p></li><li class="list-item mb-1"><p class=font-18>Pinpoint the exact hop causing slowdowns or packet loss</p></li></ul></div><div class="col-md-6 feature-list" x-show="'NETWORK PATH' == selected_category"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Analyze historical path changes to find the root cause of outages</p></li><li class="list-item mb-1"><p class=font-18>Prove whether the network issue is yours or the provider's</p></li><li class="list-item mb-1"><p class=font-18>Run tests from Datadog managed locations around the world</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'CLOUD NETWORK MONITORING' == selected_category"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to Network Path, Infrastructure, APM and Logs</p></li><li class=mb-1><p class=font-18>Automated Infrastructure Tags</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18>Plans with the right level of support for your organization</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'NETWORK DEVICE MONITORING' == selected_category"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to Network Path, Infrastructure, APM and Logs</p></li><li class=mb-1><p class=font-18>Automated Infrastructure Tags</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18>Plans with the right level of support for your organization</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row" x-show="'NETWORK PATH' == selected_category"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to APM, CNM, NDM and Infrastructure</p></li><li class=mb-1><p class=font-18>Automated Infrastructure Tags</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18>Plans with the right level of support for your organization</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=network-monitoring-common-questions><a class=text-black href=#network-monitoring-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Cloud Network Monitoring" @click.prevent="
                  updateQueryParam('tab', 'cloud-network-monitoring');
                  selected_category = 'CLOUD NETWORK MONITORING';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'CLOUD NETWORK MONITORING' == selected_category ? 'active' : ''">Cloud Network Monitoring
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Network Device Monitoring" @click.prevent="
                  updateQueryParam('tab', 'network-device-monitoring');
                  selected_category = 'NETWORK DEVICE MONITORING';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'NETWORK DEVICE MONITORING' == selected_category ? 'active' : ''">Network Device Monitoring
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: Network Path" @click.prevent="
                  updateQueryParam('tab', 'network-path');
                  selected_category = 'NETWORK PATH';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'NETWORK PATH' == selected_category ? 'active' : ''">Network Path</span></div></div><div class=faq-tab-content id=pills-tabContent--network-monitoring><div class=faq-tab id=pills-cloud-network-monitoring x-show="'CLOUD NETWORK MONITORING' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=network-monitoring-cloud-network-monitoring-how-do-you-define-a-host><a class=text-black href=#network-monitoring-cloud-network-monitoring-how-do-you-define-a-host>How do you define a host?</a></dt><dd class=ps-0>A host is any physical or virtual machine that has the Datadog agent installed with Cloud Network Monitoring enabled.</dd><dt class="border-0 ps-0" id=network-monitoring-cloud-network-monitoring-how-do-you-define-an-cnm-flow><a class=text-black href=#network-monitoring-cloud-network-monitoring-how-do-you-define-an-cnm-flow>How do you define an CNM flow?</a></dt><dd class=ps-0>A flow is a record of traffic sent and received between a source (IP:Port) and destination (IP:Port) over a five minute time period. In some cases, similar destinations are grouped into a single flow to reduce the total flow count.</dd><dt class="border-0 ps-0" id=network-monitoring-cloud-network-monitoring-does-cloud-network-monitoring-work-with-containers><a class=text-black href=#network-monitoring-cloud-network-monitoring-does-cloud-network-monitoring-work-with-containers>Does Cloud Network Monitoring work with containers?</a></dt><dd class=ps-0>Yes, Datadog Cloud Network Monitoring is designed to work in containerized and highly dynamic environments. User-defined tags allow you to slice and dice network flows by almost anything, including containers, clusters, pods, and deployments.</dd><dt class="border-0 ps-0" id=network-monitoring-cloud-network-monitoring-do-i-need-to-purchase-other-datadog-products-to-use-cnm-or-ndm><a class=text-black href=#network-monitoring-cloud-network-monitoring-do-i-need-to-purchase-other-datadog-products-to-use-cnm-or-ndm>Do I need to purchase other Datadog products to use CNM or NDM?</a></dt><dd class=ps-0>Having all your infrastructure, traces, logs, and network information under one roof is something we encourage for comprehensive visibility, however, it is not required. Cloud Network Monitoring requires the purchase of an Infrastructure Pro or Enterprise plan for every host that CNM is monitoring. Network Device Monitoring only requires the purchase of one or more infrastructure hosts which are used to poll devices.</dd></dl></div><div class=faq-tab id=pills-network-device-monitoring x-show="'NETWORK DEVICE MONITORING' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-how-do-you-define-a-device><a class=text-black href=#network-monitoring-network-device-monitoring-how-do-you-define-a-device>How do you define a device?</a></dt><dd class=ps-0>A device is a physical or virtual appliance with a unique IP address that is polled using SNMP.</dd><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-how-do-you-define-a-netflow-record><a class=text-black href=#network-monitoring-network-device-monitoring-how-do-you-define-a-netflow-record>How do you define a NetFlow record?</a></dt><dd class=ps-0>NetFlow is a network protocol created by Cisco that describes the flow of traffic across network devices. We support all NetFlow versions, including jFlow, sFlow, IPFIX or standard NetFlow v5 or v9. The Datadog agent aggregates raw NetFlow data overtime to send on a regular basis (the default being 5 mins, this can be customized).</dd><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-what-are-retention-options-for-netflow-monitoring><a class=text-black href=#network-monitoring-network-device-monitoring-what-are-retention-options-for-netflow-monitoring>What are retention options for NetFlow Monitoring?</a></dt><dd class=ps-0>We offer 15, 30, 60, and 90 day retention for NetFlow records with the default retention being 30 days. Please <a class=js-modal-demo style=cursor:pointer>contact us</a> for additional retention durations and inquires about pricing.</dd><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-do-i-need-to-purchase-other-datadog-products-to-use-cnm-or-ndm><a class=text-black href=#network-monitoring-network-device-monitoring-do-i-need-to-purchase-other-datadog-products-to-use-cnm-or-ndm>Do I need to purchase other Datadog products to use CNM or NDM?</a></dt><dd class=ps-0>Having all your infrastructure, traces, logs, and network information under one roof is something we encourage for comprehensive visibility, however, it is not required. Cloud Network Monitoring requires the purchase of an Infrastructure Pro or Enterprise plan for every host that CNM is monitoring. Network Device Monitoring only requires the purchase of one or more infrastructure hosts which are used to poll devices.</dd><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-what-is-the-difference-between-a-cnm-flow-and-netflow-monitoring-ndm-><a class=text-black href=#network-monitoring-network-device-monitoring-what-is-the-difference-between-a-cnm-flow-and-netflow-monitoring-ndm->What is the difference between a CNM flow and NetFlow Monitoring (NDM) ?</a></dt><dd class=ps-0>CNM infers flow data from eBPF data it collects from the Datadog agent running on a customer host. Netflow monitoring receives flow records from physical network equipment, which today are more extensive in their information than CNM flow data. CNM flow data is used to troubleshoot host, container, and other cloud software connection issues. NetFlow Monitoring records are used to troubleshoot physical network connectivity issues and perform capacity planning.</dd><dt class="border-0 ps-0" id=network-monitoring-network-device-monitoring-which-devices-qualify-and-do-not-qualify-for-the-wireless-ap-sku><a class=text-black href=#network-monitoring-network-device-monitoring-which-devices-qualify-and-do-not-qualify-for-the-wireless-ap-sku>Which devices qualify and do not qualify for the wireless AP SKU?</a></dt><dd class=ps-0><p>The Wireless AP SKU is focused on wireless APs that support OOTB API integrations built by NDM, such as Cisco Meraki. Devices that don&rsquo;t qualify for this SKU include:</p><ul><li>APs monitored directly via SNMP</li><li>Cisco Meraki devices: Switches, Appliances, Wireless LAN Controllers(WLC), and Cellular Gateways</li><li>APs monitored by WLCs</li></ul></dd></dl></div><div class=faq-tab id=pills-network-path x-show="'NETWORK PATH' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=network-monitoring-network-path-how-do-you-define-a-test><a class=text-black href=#network-monitoring-network-path-how-do-you-define-a-test>How do you define a test?</a></dt><dd class=ps-0>A test is a combination of TCP/UDP/ICMP traceroutes and multiple probes that traverse the network from the source to the defined destination. Each test collects information about the network, such as RTT and packet loss.</dd><dt class="border-0 ps-0" id=network-monitoring-network-path-where-can-i-run-network-path-tests-from><a class=text-black href=#network-monitoring-network-path-where-can-i-run-network-path-tests-from>Where can I run Network Path tests from?</a></dt><dd class=ps-0>You can run Network Path tests from anywhere you&rsquo;re running the Datadog agent, including both hosts and End User Devices, as well as from Datadog&rsquo;s Managed Synthetic Locations.</dd><dt class="border-0 ps-0" id=network-monitoring-network-path-can-network-path-monitor-internal-and-external-services><a class=text-black href=#network-monitoring-network-path-can-network-path-monitor-internal-and-external-services>Can Network Path monitor internal and external services?</a></dt><dd class=ps-0>Yes, while Network Path can show internal VPC-to-VPC traffic, it can also point to external hostnames. This can help prove to a SaaS vendor that an outage is happening on their end or within the public internet, rather than within your network.</dd><dt class="border-0 ps-0" id=network-monitoring-network-path-is-there-a-difference-in-price-between-running-network-path-from-a-datadog-agent-versus-a-synthetic-location><a class=text-black href=#network-monitoring-network-path-is-there-a-difference-in-price-between-running-network-path-from-a-datadog-agent-versus-a-synthetic-location>Is there a difference in price between running Network Path from a Datadog agent versus a Synthetic location?</a></dt><dd class=ps-0>No, it&rsquo;s all the same price for Network Path regardless of where the test is being run from.</dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-68" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'detect',
                                    
                                        'detect-and-obfuscate',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'sensitive-data-scanner' ? 'active' : ''"><div class=multi-plan data-plan-count=2><h2 class=text-md-center id=sensitive-data-scanner><a class=text-black>Sensitive Data Scanner</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Detect and obfuscate your sensitive data<br>in real time at any scale</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Detect" @click.prevent="
                                                        updateQueryParam('tab', 'detect')
                                                        selected_category = 'DETECT'; 
                                                        planOpen = false;
                                                    " :class="'DETECT' == selected_category ? 'active' : ''">Detect
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Detect and Obfuscate" @click.prevent="
                                                        updateQueryParam('tab', 'detect-and-obfuscate')
                                                        selected_category = 'DETECT AND OBFUSCATE'; 
                                                        planOpen = false;
                                                    " :class="'DETECT AND OBFUSCATE' == selected_category ? 'active' : ''">Detect and Obfuscate</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['DETECT',].includes(selected_category) && pricing[region]['SDS-PARTIAL'] && product === 'sensitive-data-scanner'
            ? 'd-flex group'
            : ['DETECT',].includes(selected_category) && product === 'sensitive-data-scanner'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Sensitive Data Scanner">Sensitive Data Scanner</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SDS-PARTIAL'] ? pricing[region]['SDS-PARTIAL'].annual_cost : ''">0.03</span><div class=price-helper-wrapper><span class="price-helper small">per ingested GB,<br>at 10% <a href=https://docs.datadoghq.com/security/sensitive_data_scanner/#in-the-cloud>sampling</a>*, per month**</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6"></p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box and customizable detection rules</p></li><li><p class="small fw-semibold">Sensitive data detection across all ingested data, regardless of source</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*<a href=https://docs.datadoghq.com/security/sensitive_data_scanner/#in-the-cloud>Sampling</a> must be disabled to obfuscate sensitive data<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SDS-PARTIAL'] ? pricing[region]['SDS-PARTIAL'].on_demand_cost : ''">0.045</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Sensitive Data Scanner" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['DETECT AND OBFUSCATE',].includes(selected_category) && pricing[region]['SDS'] && product === 'sensitive-data-scanner'
            ? 'd-flex group'
            : ['DETECT AND OBFUSCATE',].includes(selected_category) && product === 'sensitive-data-scanner'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Sensitive Data Scanner">Sensitive Data Scanner</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SDS'] ? pricing[region]['SDS'].annual_cost : ''">0.30</span><div class=price-helper-wrapper><span class="price-helper small">Per scanned GB,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6"></p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Out-of-the-box and customizable detection rules</p></li><li><p class="small fw-semibold">Sensitive data detection across all ingested data, regardless of source</p></li><li><p class="small fw-semibold">Automatically obfuscate (hash, redact, or mask) detected sensitive data.</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['SDS'] ? pricing[region]['SDS'].on_demand_cost : ''">0.45</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Sensitive Data Scanner" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Real-time sensitive data detection</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box and custom rule capabilities</p></li><li class="list-item mb-1"><p class=font-18>Fully integrated with Datadog role-based access control (RBAC)</p></li><li class="list-item mb-1"><p class=font-18>Stream-based pattern matching across your data</p></li><li class="list-item mb-1"><p class=font-18>Granular control over data scanning and classification with scanning groups</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Fully integrated with Datadog alerts and dashboards for compliance tracking and investigation</p></li><li class="list-item mb-1"><p class=font-18>Correlate data using standard and custom tags</p></li><li class="list-item mb-1"><p class=font-18>Supports data from Log Management, APM, RUM, and AWS cloud storage resources</p></li><li class="list-item mb-1"><p class=font-18>Help protect data on-premises or in the cloud</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to related metrics, traces, and logs during investigations</p></li><li class=mb-1><p class=font-18>Correlate security signals and detailed observability data</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=sensitive-data-scanner-common-questions><a class=text-black href=#sensitive-data-scanner-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=sensitive-data-scanner-how-does-sensitive-data-scanner-work><a class=text-black href=#sensitive-data-scanner-how-does-sensitive-data-scanner-work>How does Sensitive Data Scanner work?</a></dt><dd class=ps-0>Sensitive Data Scanner works by using pattern-matching rules to classify and track sensitive data, and optionally scrubbing or hashing that data to prevent it from being exposed. Learn more from our <a href=https://docs.datadoghq.com/account_management/org_settings/sensitive_data_detection>documentation</a>.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-can-i-filter-out-which-logs-spans-andor-events-are-scanned><a class=text-black href=#sensitive-data-scanner-can-i-filter-out-which-logs-spans-andor-events-are-scanned>Can I filter out which logs, spans, and/or events are scanned?</a></dt><dd class=ps-0>Yes. Datadog allows you to set up multiple scanning groups that can be used to filter logs out using tags or log attributes.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-how-do-i-set-up-a-scanning-rule><a class=text-black href=#sensitive-data-scanner-how-do-i-set-up-a-scanning-rule>How do I set up a scanning rule?</a></dt><dd class=ps-0>By either using a rule from the library or defining a custom rule. Learn how in our <a href=https://docs.datadoghq.com/account_management/org_settings/sensitive_data_detection>documentation</a>.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-what-are-the-different-options-for-handling-sensitive-data><a class=text-black href=#sensitive-data-scanner-what-are-the-different-options-for-handling-sensitive-data>What are the different options for handling sensitive data?</a></dt><dd class=ps-0>The Datadog Agent provides you with solutions to prevent compliance-sensitive data from being sent outside of your platform, including scrubbing. Check out more info in our <a href=https://docs.datadoghq.com/account_management/org_settings/sensitive_data_detection>documentation</a>.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-how-do-i-ensure-confidentiality--access-controls-for-my-scanning-rules><a class=text-black href=#sensitive-data-scanner-how-do-i-ensure-confidentiality--access-controls-for-my-scanning-rules>How do I ensure confidentiality / access controls for my scanning rules?</a></dt><dd class=ps-0>Sensitive Data Scanner is fully integrated with Datadog <a href="https://docs.datadoghq.com/logs/guide/logs-rbac/?tab=ui">role-based access control (RBAC)</a> so you can easily control which roles and users have access.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-is-this-available-in-all-regions><a class=text-black href=#sensitive-data-scanner-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes. Sensitive Data Scanner is available in all EU-, AP-, and US-hosted accounts.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-are-there-other-billing-options><a class=text-black href=#sensitive-data-scanner-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual and monthly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-do-you-have-special-offerings-for-partners><a class=text-black href=#sensitive-data-scanner-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We’re always looking to partner with technology and service providers and resellers. See our <a href=https://www.datadoghq.com/partner/>Partner Network page</a> for more.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-what-does-sensitive-data-scanner-scan><a class=text-black href=#sensitive-data-scanner-what-does-sensitive-data-scanner-scan>What does Sensitive Data Scanner scan?</a></dt><dd class=ps-0>Sensitive Data Scanner scans logs, APM spans, RUM events, and AWS Cloud Storage resources (e.g. AWS S3 buckets).</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-can-sensitive-data-scanner-scan-on-premise><a class=text-black href=#sensitive-data-scanner-can-sensitive-data-scanner-scan-on-premise>Can Sensitive Data Scanner scan on-premise?</a></dt><dd class=ps-0>To help you comply with data protection laws, you can obfuscate sensitive information within your infrastructure using Observability Pipelines. Learn how in our <a href=https://docs.datadoghq.com/observability_pipelines/processors/sensitive_data_scanner/>documentation</a>.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-whats-the-difference-between-partial-and-full-data-coverage><a class=text-black href=#sensitive-data-scanner-whats-the-difference-between-partial-and-full-data-coverage>What’s the difference between partial and full data coverage?</a></dt><dd class=ps-0>Partial data coverage uses percentage-based sampling to provide broad visibility into where sensitive data exists across your environment. It includes sensitive data detection and classification, helping you understand high-level sensitive data exposure.<br><br>Full data coverage scans all specified telemetry data and enables complete detection, classification, and obfuscation (hashing, redacting or masking) of sensitive data directly within the Datadog platform. Users can enforce role-based access controls to unmask sensitive data needed during investigations.</dd><dt class="border-0 ps-0" id=sensitive-data-scanner-when-should-i-use-partial-versus-full-data-coverage><a class=text-black href=#sensitive-data-scanner-when-should-i-use-partial-versus-full-data-coverage>When should I use partial versus full data coverage?</a></dt><dd class=ps-0>Datadog recommends starting with partial data coverage to quickly assess your environment and identify potential leaks. Once you have established visibility and want to apply obfuscation upon ingestion into Datadog, you can upgrade to full data coverage to automatically hash, redact or mask sensitive information across all telemetry data within the Datadog platform.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-69" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'full-infrastructure-coverage',
                                    
                                        'partial-infrastructure-coverage',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'universal-service-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=2><h2 class=text-md-center id=universal-service-monitoring><a class=text-black>Universal Service Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Automatically discover, map, and monitor all your services—without changing code</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Full Infrastructure Coverage" @click.prevent="
                                                        updateQueryParam('tab', 'full-infrastructure-coverage')
                                                        selected_category = 'FULL INFRASTRUCTURE COVERAGE'; 
                                                        planOpen = false;
                                                    " :class="'FULL INFRASTRUCTURE COVERAGE' == selected_category ? 'active' : ''">Full Infrastructure Coverage
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Partial Infrastructure Coverage" @click.prevent="
                                                        updateQueryParam('tab', 'partial-infrastructure-coverage')
                                                        selected_category = 'PARTIAL INFRASTRUCTURE COVERAGE'; 
                                                        planOpen = false;
                                                    " :class="'PARTIAL INFRASTRUCTURE COVERAGE' == selected_category ? 'active' : ''">Partial Infrastructure Coverage</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['FULL INFRASTRUCTURE COVERAGE',].includes(selected_category) && pricing[region]['USM-WITHIN-INFRA-HOST'] && product === 'universal-service-monitoring'
            ? 'd-flex group'
            : ['FULL INFRASTRUCTURE COVERAGE',].includes(selected_category) && product === 'universal-service-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Universal Service Monitoring">Universal Service Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['USM-WITHIN-INFRA-HOST'] ? pricing[region]['USM-WITHIN-INFRA-HOST'].annual_cost : ''">9</span><div class=price-helper-wrapper><span class="price-helper small">Per Infrastructure Monitoring host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6"></p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Automatically discover all 1st and 3rd party services and their dependencies</p></li><li><p class="small fw-semibold">Monitor real-time performance metrics of every service in one place</p></li><li><p class="small fw-semibold">Standardize monitoring best practices across all teams</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Requires purchase of Infrastructure Monitoring<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['USM-WITHIN-INFRA-HOST'] ? pricing[region]['USM-WITHIN-INFRA-HOST'].on_demand_cost : ''">13</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Universal Service Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['PARTIAL INFRASTRUCTURE COVERAGE',].includes(selected_category) && pricing[region]['HOSTS-APM'] && product === 'universal-service-monitoring'
            ? 'd-flex group'
            : ['PARTIAL INFRASTRUCTURE COVERAGE',].includes(selected_category) && product === 'universal-service-monitoring'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Application Performance Monitoring">Application Performance Monitoring</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-APM'] ? pricing[region]['HOSTS-APM'].annual_cost : ''">31</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6"></p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Automatically discover all 1st and 3rd party services and their dependencies</p></li><li><p class="small fw-semibold">Monitor real-time performance metrics of every service in one place</p></li><li><p class="small fw-semibold">Standardize monitoring best practices across all teams</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOSTS-APM'] ? pricing[region]['HOSTS-APM'].on_demand_cost : ''">36</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Application Performance Monitoring" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Automatic service discovery with no code changes</p></li><li class="list-item mb-1"><p class=font-18>Real-time service dependency map</p></li><li class="list-item mb-1"><p class=font-18>Real-time throughput, error, and latency metrics</p></li><li class="list-item mb-1"><p class=font-18>Easy-to-set-up SLOs with consistent SLIs</p></li><li class="list-item mb-1"><p class=font-18>Machine learning-based monitors</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Automatically populated Service Catalog</p></li><li class="list-item mb-1"><p class=font-18>Service ownership management</p></li><li class="list-item mb-1"><p class=font-18>Source code and Pagerduty integrations</p></li><li class="list-item mb-1"><p class=font-18>Drag & drop dashboards with template variables</p></li><li class="list-item mb-1"><p class=font-18>Support for every programming language</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to related metrics, traces, logs and code profiles during investigations</p></li><li class=mb-1><p class=font-18>Correlate service performance and reliability with security signals</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=universal-service-monitoring-common-questions><a class=text-black href=#universal-service-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=universal-service-monitoring-what-is-universal-service-monitoring-usm-and-how-does-it-work><a class=text-black href=#universal-service-monitoring-what-is-universal-service-monitoring-usm-and-how-does-it-work>What is Universal Service Monitoring (USM) and how does it work?</a></dt><dd class=ps-0>Universal Service Monitoring (USM) uses the revolutionary eBPF technology (kernel-level) to provide request, error, and latency metrics for the entire fleet of services in seconds, with no code changes and regardless of programming language. To learn more please read our <a href="https://docs.datadoghq.com/tracing/universal_service_monitoring/?tab=helm">documentation</a> and <a href=https://www.datadoghq.com/blog/universal-service-monitoring-datadog/>blog</a>.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-what-kind-of-billing-plan-do-i-need-to-run-usm><a class=text-black href=#universal-service-monitoring-what-kind-of-billing-plan-do-i-need-to-run-usm>What kind of billing plan do I need to run USM?</a></dt><dd class=ps-0>Datadog USM must be purchased in addition to Infrastructure Monitoring. One option is to purchase USM for <span class=text-underline>all</span> Infrastructure Monitoring <a href="https://www.datadoghq.com/pricing/?product=infrastructure-monitoring#infrastructure-monitoring-how-do-you-define-a-host">hosts</a> on your plan (starting at $<span x-text="pricing[region]['USM-WITHIN-INFRA-HOST'] ? pricing[region]['USM-WITHIN-INFRA-HOST'].annual_cost : ''">9</span> per host per month).</dd><dt class="border-0 ps-0" id=universal-service-monitoring-can-i-purchase-usm-for-a-subset-of-my-pro-or-enterprise-infrastructure-hosts><a class=text-black href=#universal-service-monitoring-can-i-purchase-usm-for-a-subset-of-my-pro-or-enterprise-infrastructure-hosts>Can I purchase USM for a subset of my Pro or Enterprise Infrastructure hosts?</a></dt><dd class=ps-0>Yes. If you would like to set up USM on a subset of your Pro or Enterprise Infrastructure hosts, you would need to purchase APM. Every purchase of an APM host now includes USM on that host at no additional cost, starting at $<span x-text="pricing[region]['HOSTS-APM'] ? pricing[region]['HOSTS-APM'].annual_cost : ''">31</span> per host per month.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-usm-to-my-plan><a class=text-black href=#universal-service-monitoring-i-am-an-existing-infrastructure-monitoring-customer-can-i-add-usm-to-my-plan>I am an existing Infrastructure Monitoring customer. Can I add USM to my plan?</a></dt><dd class=ps-0>Yes. Existing Infrastructure Monitoring customers can add USM to all their Pro or Enterprise hosts for an additional $<span x-text="pricing[region]['USM-WITHIN-INFRA-HOST'] ? pricing[region]['USM-WITHIN-INFRA-HOST'].annual_cost : ''">9</span> per host per month (starting price with an annual commitment). Reach out to your Customer Success Manager for further details.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-what-types-of-infrastructure-does-usm-support><a class=text-black href=#universal-service-monitoring-what-types-of-infrastructure-does-usm-support>What types of Infrastructure does USM support?</a></dt><dd class=ps-0>USM currently supports containerized environments and non-containerized environments. For more information please visit our <a href="https://docs.datadoghq.com/universal_service_monitoring/?tab=helm">documentation</a>.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-does-usm-support-serverless-technologies><a class=text-black href=#universal-service-monitoring-does-usm-support-serverless-technologies>Does USM support serverless technologies?</a></dt><dd class=ps-0>Serverless technologies such as ECS Fargate, EKS Fargate, and AWS Lambda are not currently supported.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-what-operating-systems-does-usm-support><a class=text-black href=#universal-service-monitoring-what-operating-systems-does-usm-support>What operating systems does USM support?</a></dt><dd class=ps-0>USM currently supports most Linux (4.14+) or CentOS/RHEL (8.0+) environments and Windows IIS-based services (Windows 2012 R2+). For more information please visit our <a href="https://docs.datadoghq.com/universal_service_monitoring/?tab=helm">documentation</a>.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-which-programming-languages-and-network-protocols-does-usm-support><a class=text-black href=#universal-service-monitoring-which-programming-languages-and-network-protocols-does-usm-support>Which programming languages and network protocols does USM support?</a></dt><dd class=ps-0>USM is programming language-agnostic and currently supports containerized applications that communicate using HTTP and HTTPS (OpenSSL and GnuTLS are supported). For more information please visit our <a href="https://docs.datadoghq.com/tracing/universal_service_monitoring/?tab=helm">documentation</a>.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-what-is-the-difference-between-usm-and-datadog-apm><a class=text-black href=#universal-service-monitoring-what-is-the-difference-between-usm-and-datadog-apm>What is the difference between USM and Datadog APM?</a></dt><dd class=ps-0>USM automatically discovers, maps, and catalogs your 1st- and 3rd-party services without requiring any redeployment and regardless of programming language. This allows you to gain instant visibility into their health metrics and dependencies, and quickly detect issues anywhere in your application. Datadog APM allows you to easily troubleshoot issues with distributed traces and code profiles that provide request- and code-level visibility for fast root-cause analysis and resolution.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-can-i-purchase-usm-and-apm-on-the-same-host><a class=text-black href=#universal-service-monitoring-can-i-purchase-usm-and-apm-on-the-same-host>Can I purchase USM and APM on the same host?</a></dt><dd class=ps-0>Yes. You can set up USM on all your Pro or Enterprise Infrastructure hosts and set up APM and distributed tracing on all or a subset of these hosts. This applies to both existing and new Datadog APM customers.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-how-does-billing-work-if-i-purchase-usm-and-apm-on-the-same-host><a class=text-black href=#universal-service-monitoring-how-does-billing-work-if-i-purchase-usm-and-apm-on-the-same-host>How does billing work if I purchase USM and APM on the same host?</a></dt><dd class=ps-0>If both USM and APM are purchased and/or installed on the same host, you will only pay the APM price, based on your APM plan.</dd><dt class="border-0 ps-0" id=universal-service-monitoring-are-there-other-billing-options><a class=text-black href=#universal-service-monitoring-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0><a href=https://www.datadoghq.com/pricing/list/>Annual, monthly, and hourly plans</a> are available in combination with Infrastructure Monitoring. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our Billing FAQ or reach out to your account manager.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-70" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'cloud-siem' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=cloud-siem><a class=text-black>Cloud SIEM</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Detect security threats with a real-time detection engine and built-in threat intelligence; conduct investigations and threat hunts across 12-months of security data.</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['SIEM-INDEXED'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="12-months analysis & retention">12-months analysis & retention
           </p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['SIEM-INDEXED'] ? pricing[region]['SIEM-INDEXED'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per GB analyzed<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: 12-months analysis & retention" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>More than 800, and growing, out-of-the-box detection rules maintained by Datadog’s detection engineering experts</p></li><li><p class=m-0>Autonomously investigate security alerts with Bits Security Analyst**</p></li><li><p class=m-0>Logs are analyzed in real time for detection within seconds</p></li><li><p class=m-0>Threat hunt and investigate across 12-months of security data using our easy-to-use log search tools</p></li><li><p class=m-0>Reduce time to insight in complex cloud environments using our graph-based, entity-focused investigation tools</p></li><li><p class=m-0>Accelerate mean time to response with automation workflows***</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">Cloud SIEM is billed annually or $<span x-text="pricing[region]['SIEM-INDEXED'] ? pricing[region]['SIEM-INDEXED'].on_demand_cost : ''">7.50</span> on-demand<br>**Includes allotment of 100 free monthly Bits Security Analyst investigations per 1 TB analyzed (minimum of 50 free monthly investigations)<br>***Workflows are billed separately<br></p><a data-dd-action-name="card: button: start free trial: 12-months analysis & retention" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available&nbsp;(1.2B+ events/mo)</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><p class="fw-semibold small">Detection & Prioritization</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Detect threats in seconds, not minutes or hours</p></li><li class=mb-1><p class=font-18>Out-of-the-box detection rules identifying potential malicious behavior</p></li><li class=mb-1><p class=font-18>SQL-based detections powered by normalized OCSF datasets</p></li><li class=mb-1><p class=font-18>Signals embedded with MITRE ATT&CK® and playbook guidance</p></li><li class=mb-1><p class=font-18>Risk-based insights that score and prioritize users, services, and cloud resources</p></li><li class=mb-1><p class=font-18>Risk Insight Notifications when entities exceed customizable risk thresholds</p></li><li class=mb-1><p class=font-18>User and Entity Behavior Analytics (UEBA) to detect anomalous or risky behavior</p></li></ul><p class="fw-semibold small">AI-Powered Investigation</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Bits Security Analyst for autonomous signal triage and investigation</p></li><li class=mb-1><p class=font-18>AI-generated verdict recommendations and investigation summaries</p></li><li class=mb-1><p class=font-18>Embedded notebooks to launch hunts and generate new detections in-platform</p></li></ul><p class="fw-semibold small">Threat Intelligence</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Native integrations with leading threat intelligence providers like Recorded Future</p></li><li class=mb-1><p class=font-18>IoC Explorer to centralize and operationalize indicators of compromise</p></li></ul></div><div class="col-md-6 feature-list"><p class="fw-semibold small">Investigation & Response</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Investigate cloud entities using graph-based visualizations</p></li><li class=mb-1><p class=font-18>Pivot seamlessly to related metrics, traces, and logs during investigations</p></li><li class=mb-1><p class=font-18>Collaborate quickly and easily between developers, operations, and security teams using built-in case management and incident management tools</p></li><li class=mb-1><p class=font-18>Enhanced Security Case Management with tighter signal-to-case integration</p></li></ul><p class="fw-semibold small">Content & Data Platform</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Growing library of out-of-the-box integrations for essential security tools</p></li><li class=mb-1><p class=font-18>Activate bundled security content with out-of-the-box content packs to get started quickly</p></li><li class=mb-1><p class=font-18>Dynamic, customizable dashboards</p></li><li class=mb-1><p class=font-18>OCSF Processor for transforming and enriching security logs at ingest</p></li><li class=mb-1><p class=font-18>Designate all or specific data for analysis through in-app or API security filters</p></li><li class=mb-1><p class=font-18>Easy-to-use query language and search tools</p></li></ul><p class="fw-semibold small">Scale & Operations</p><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>All security log and signal data retained and indexed for 12 months</p></li><li class=mb-1><p class=font-18>Unlimited user accounts</p></li><li class=mb-1><p class=font-18>Deployment in minutes</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Correlate security signals and detailed observability data</p></li><li class=mb-1><p class=font-18>Accelerate response with <a href="https://www.datadoghq.com/pricing/?product=workflow-automation#products">Workflow Automation</a></p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Easy access to support via chat or email</p></li><li class=mb-1><p class=font-18>Join active online community forum for discussions and resolutions to questions</p></li><li class=mb-1><p class=font-18>Access extensive online documentation to expand skills and product knowledge</p></li><li class=mb-1><p class=font-18>Select from <a href=https://www.datadoghq.com/support-services/plans/>support plans</a> right-sized for your organization</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=cloud-siem-common-questions><a class=text-black href=#cloud-siem-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=cloud-siem-which-logs-are-analyzed-by-cloud-siem><a class=text-black href=#cloud-siem-which-logs-are-analyzed-by-cloud-siem>Which logs are analyzed by Cloud SIEM?</a></dt><dd class=ps-0>Cloud SIEM only analyzes the logs you choose to send to it.</dd><dt class="border-0 ps-0" id=cloud-siem-what-detection-rules-are-available-out-of-the-box><a class=text-black href=#cloud-siem-what-detection-rules-are-available-out-of-the-box>What detection rules are available out of the box?</a></dt><dd class=ps-0>Datadog continuously releases new detection rules, which are automatically enabled for existing customers. To explore Cloud SIEM’s default detection rules, please visit our <a href=https://docs.datadoghq.com/security/default_rules/ target=_blank>public docs</a>.</dd><dt class="border-0 ps-0" id=cloud-siem-how-are-detection-rules-categorized><a class=text-black href=#cloud-siem-how-are-detection-rules-categorized>How are detection rules categorized?</a></dt><dd class=ps-0>Rules that detect potential attacker techniques are mapped to the <a href=https://attack.mitre.org/ target=_blank>MITRE ATT&amp;CK® framework</a>.</dd><dt class="border-0 ps-0" id=cloud-siem-can-users-write-their-own-custom-detection-rules><a class=text-black href=#cloud-siem-can-users-write-their-own-custom-detection-rules>Can users write their own custom detection rules?</a></dt><dd class=ps-0>Yes, Cloud SIEM includes a rule editor that lets users edit default detection rules or write their own. The editor does not require users to learn a proprietary query language. To learn more about Cloud SIEM’s log detection and correlation rules see our documentation <a href='https://docs.datadoghq.com/security/cloud_siem/log_detection_rules/?tab=threshold' target=_blank>here</a> and <a href=https://docs.datadoghq.com/security/cloud_siem/signal_correlation_rules/ target=_blank>here</a>.</dd><dt class="border-0 ps-0" id=cloud-siem-is-there-an-additional-cost-for-writing-custom-threat-detection-rules><a class=text-black href=#cloud-siem-is-there-an-additional-cost-for-writing-custom-threat-detection-rules>Is there an additional cost for writing custom threat detection rules?</a></dt><dd class=ps-0>No, Cloud SIEM covers the analysis of ingested logs both by default detection rules, as well as by any user-defined detection rules.</dd><dt class="border-0 ps-0" id=cloud-siem-is-there-an-additional-cost-for-retaining-security-signals-generated-by-detection-rules><a class=text-black href=#cloud-siem-is-there-an-additional-cost-for-retaining-security-signals-generated-by-detection-rules>Is there an additional cost for retaining security signals generated by detection rules?</a></dt><dd class=ps-0>No, Cloud SIEM covers the retention of security signals for 12 months.</dd><dt class="border-0 ps-0" id=cloud-siem-are-there-other-billing-options><a class=text-black href=#cloud-siem-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual and monthly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-71" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'datadog-disaster-recovery' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=datadog-disaster-recovery><a class=text-black>Datadog Disaster Recovery</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Maintain observability continuity during cloud provider region outages. Recover live telemetry, dashboards, and monitors at an operational secondary Datadog site with zero re-instrumentation.</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><div class="text-center price price-container" x-show="! custom"><div class="d-flex flex-column"><p>Get in touch</p><p class=price-amount>Custom Quote</p></div><div class=price-helper-wrapper><span class="price-helper small">Custom pricing based on scope of coverage.<br>Contact us for details.</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: request a quote: Datadog Disaster Recovery" href=# class="js-modal-demo mktoForm_1427 d-none d-md-inline-block pricing-bg-color-1 btn cta-btn mt-2 mb-2">request a quote</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Automated failover of telemetry pipelines to a secondary Datadog site during cloud region outages</p></li><li><p class=m-0>Continuity for dashboards, monitors, and alerting with no re-instrumentation required</p></li><li><p class=m-0>Purpose-built for enterprise disaster recovery and business continuity requirements</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">Pricing is based on the scope of observability coverage included in your disaster recovery plan. <a class=js-modal-demo>Contact Sales</a> for a custom quote. Available in all regions except GovCloud (us1.fed).<br></p><a data-dd-action-name="card: button: request a quote: Datadog Disaster Recovery" href=# class="js-modal-demo mktoForm_1427 d-block d-md-none pricing-bg-color-1 btn cta-btn mt-2 mb-2">request a quote</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><p class=mt-0>Contact Sales for details on multi-year and commitment-based pricing.</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=datadog-disaster-recovery-common-questions><a class=text-black href=#datadog-disaster-recovery-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=datadog-disaster-recovery-what-is-datadog-disaster-recovery><a class=text-black href=#datadog-disaster-recovery-what-is-datadog-disaster-recovery>What is Datadog Disaster Recovery?</a></dt><dd class=ps-0>Datadog Disaster Recovery enables organizations to maintain observability continuity during cloud provider region outages. It automatically fails over telemetry ingestion to a secondary Datadog site, preserving dashboards, monitors, and alerting without requiring any re-instrumentation.</dd><dt class="border-0 ps-0" id=datadog-disaster-recovery-how-is-ddr-priced><a class=text-black href=#datadog-disaster-recovery-how-is-ddr-priced>How is DDR priced?</a></dt><dd class=ps-0>DDR pricing is based on the scope of your observability coverage. <a class=js-modal-demo>Contact Sales</a> for a custom quote tailored to your environment.</dd><dt class="border-0 ps-0" id=datadog-disaster-recovery-which-datadog-products-does-ddr-cover><a class=text-black href=#datadog-disaster-recovery-which-datadog-products-does-ddr-cover>Which Datadog products does DDR cover?</a></dt><dd class=ps-0>DDR covers Infrastructure Monitoring, Log Management, and APM workloads. See documentation for the full list of scoped products.</dd><dt class="border-0 ps-0" id=datadog-disaster-recovery-is-a-trial-available><a class=text-black href=#datadog-disaster-recovery-is-a-trial-available>Is a trial available?</a></dt><dd class=ps-0>Yes. Contact Sales to set up a trial.</dd><dt class="border-0 ps-0" id=datadog-disaster-recovery-is-ddr-available-in-govcloud><a class=text-black href=#datadog-disaster-recovery-is-ddr-available-in-govcloud>Is DDR available in GovCloud?</a></dt><dd class=ps-0>DDR is not currently available in GovCloud (us1.fed).</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-72" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'audit-trail' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=audit-trail><a class=text-black>Audit Trail</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Maintain compliance, enforce platform governance, and build transparency</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['AUDIT-TRAIL'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><span class="price-amount js-price-amount"><span x-text="pricing[region]['AUDIT-TRAIL'] ? pricing[region]['AUDIT-TRAIL'].annual_cost : ''">2</span>% of monthly spend*</span><div class=price-helper-wrapper><span class="price-helper small"></span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Get full visibility into user access and platform changes across all services, empowering DevOps and compliance teams with context-rich insights.</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or <span class=js-custom-price-on-demand x-text="pricing[region]['AUDIT-TRAIL'] ? pricing[region]['AUDIT-TRAIL'].on_demand_cost : ''">3</span>% on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Audit all access and configuration activity across Datadog Platform</p></li><li class="list-item mb-1"><p class=font-18>Search and analyze detailed audit events for up to 90 days</p></li><li class="list-item mb-1"><p class=font-18>Archive audit events for long-term retention</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Fully integrated with Datadog alerts and dashboards for compliance tracking and investigation</p></li><li class="list-item mb-1"><p class=font-18>Alert on critical events such as changes in index retention</p></li><li class="list-item mb-1"><p class=font-18>Fully Integrated with Datadog role-based access control (RBAC)</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to related metrics, traces, and logs during investigations</p></li><li class=mb-1><p class=font-18>Correlate security signals and detailed observability data</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical Support (Chat and Email)</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=audit-trail-common-questions><a class=text-black href=#audit-trail-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=audit-trail-how-does-audit-trail-work><a class=text-black href=#audit-trail-how-does-audit-trail-work>How does Audit Trail work?</a></dt><dd class=ps-0>Audit Trail captures all access and configuration change activity and provides a single view to search and analyze the events. Learn more from our <a href=https://docs.datadoghq.com/account_management/audit_logs/>documentation</a>.</dd><dt class="border-0 ps-0" id=audit-trail-how-do-i-set-up-datadog-audit-trail><a class=text-black href=#audit-trail-how-do-i-set-up-datadog-audit-trail>How do I set up Datadog Audit Trail?</a></dt><dd class=ps-0>Datadog Audit Trail can be enabled in Organization Settings, in the Audit Trail Settings page. Learn more in our <a href=https://docs.datadoghq.com/account_management/audit_logs/#setup>docs</a>.</dd><dt class="border-0 ps-0" id=audit-trail-how-do-i-ensure-confidentiality--access-controls-for-my-audit-trail-events><a class=text-black href=#audit-trail-how-do-i-ensure-confidentiality--access-controls-for-my-audit-trail-events>How do I ensure confidentiality / access controls for my Audit Trail Events?</a></dt><dd class=ps-0>Datadog Audit Trail is fully integrated with Datadog <a href="https://docs.datadoghq.com/logs/guide/logs-rbac/?tab=ui">role-based access control (RBAC)</a> so you can easily control which roles and users have access. Read more in our docs.</dd><dt class="border-0 ps-0" id=audit-trail-do-i-need-to-purchase-other-datadog-products-to-use-datadog-audit-trail><a class=text-black href=#audit-trail-do-i-need-to-purchase-other-datadog-products-to-use-datadog-audit-trail>Do I need to purchase other Datadog products to use Datadog Audit Trail?</a></dt><dd class=ps-0>Yes.</dd><dt class="border-0 ps-0" id=audit-trail-is-this-available-in-all-regions><a class=text-black href=#audit-trail-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes, Datadog Audit Trail is available in all EU- and US- hosted accounts.</dd><dt class="border-0 ps-0" id=audit-trail-are-there-other-billing-options><a class=text-black href=#audit-trail-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>For more information about billing options, please contact your customer success representative.</dd><dt class="border-0 ps-0" id=audit-trail-do-you-have-special-offerings-for-partners><a class=text-black href=#audit-trail-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We&rsquo;re always looking to partner with technology and service providers and resellers. See our Partners page for more.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-73" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'csm-pro',
                                    
                                        'csm-enterprise',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'cloud-security' ? 'active' : ''"><div class=multi-plan data-plan-count=2><h2 class=text-md-center id=cloud-security><a class=text-black>Cloud Security</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Unified view of infrastructure threats and findings</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['CSM-HOST-PRO'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="CSM Pro">CSM Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CSM-HOST-PRO'] ? pricing[region]['CSM-HOST-PRO'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Continuous scanning across your entire cloud infrastructure with a combination of agent and agentless scanning</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Cloud Security Posture Management (CSPM)</p></li><li><p class="small fw-semibold">Kubernetes Security Posture Management (KSPM)</p></li><li><p class="small fw-semibold">Built-in mapping of your resources to compliance frameworks to help with audits</p></li><li><p class="small fw-semibold">Vulnerability Management (VM) for Containers & Hosts</p></li><li><p class="small fw-semibold">Cloud Infrastructure Entitlement Management (CIEM)</p></li><li><p class="small fw-semibold">Comprehensive inventory of cloud resources & linked risks</p></li><li><p class="small fw-semibold">Case management</p></li><li><p class="small fw-semibold">Workflows to automate remediation</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span x-text="pricing[region]['CSM-HOST-PRO'] ? pricing[region]['CSM-HOST-PRO'].on_demand_cost : ''">12</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: CSM Pro" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="pricing[region]['CSM-HOST-ENT'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="CSM Enterprise">CSM Enterprise</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CSM-HOST-ENT'] ? pricing[region]['CSM-HOST-ENT'].annual_cost : ''">25</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Includes everything in CSM Pro, as well as:</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">File integrity monitoring</p></li><li><p class="small fw-semibold">Workload Protection for Linux, Windows Kubernetes, Docker, and AWS Fargate ECS/EKS</p></li><li><p class="small fw-semibold">Increased container allotment (20 containers <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host license**)</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span x-text="pricing[region]['CSM-HOST-ENT'] ? pricing[region]['CSM-HOST-ENT'].on_demand_cost : ''">30</span> on-demand<br>**Additional containers billed at $<span x-text="pricing[region]['CSM-CONT-ENT'] ? pricing[region]['CSM-CONT-ENT'].on_demand_cost : ''">0.002</span> / hr per container<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: CSM Enterprise" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available&nbsp;(500+ hosts/mo)</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-6></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Pro</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Enterprise</h4></div><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Cloud Security Posture Management (CSPM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Kubernetes Security Posture Management (KSPM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Built-in mapping of your resources to compliance frameworks to help with audits</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Vulnerability Management (VM) for Containers & Host</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Cloud Infrastructure Entitlement Management (CIEM)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>File integrity monitoring</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Workload Protection</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Comprehensive inventory of cloud resources & linked risks</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Case management</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><p class="fw-semibold small text-start text-uppercase"><a href=https://www.datadoghq.com/pricing/allotments/ class="fw-semibold small text-start text-uppercase">Allotments</a></p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Workflow Automation</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 workflow executions per host per month</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">20 workflow executions per host per month</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>CSM Containers</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">5 containers per host per month</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">20 containers per host per month</p></div></div></div></div><p class="fw-semibold small text-start text-uppercase">When combined with other products</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>One interface to correlate workload level threats with misconfigurations, vulnerabilities, and identify related risks.</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Pivot seamlessly to related metrics, traces, and logs during investigations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=cloud-security-common-questions><a class=text-black href=#cloud-security-common-questions>Common Questions</a></h3><div class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=faqOpen @click="faqOpen = ! faqOpen" :data-dd-action-name="faqOpen ? 'faq: dropdown: close' : 'faq: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=faqOpen x-show=faqOpen @click.outside="faqOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: CSM Pro" @click.prevent="
                  updateQueryParam('tab', 'csm-pro');
                  selected_category = 'CSM PRO';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'CSM PRO' == selected_category ? 'active' : ''">CSM Pro
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="faq: dropdown: CSM Enterprise" @click.prevent="
                  updateQueryParam('tab', 'csm-enterprise');
                  selected_category = 'CSM ENTERPRISE';
                  faqOpen = false;
                  scrollToFaqs();
                " :class="'CSM ENTERPRISE' == selected_category ? 'active' : ''">CSM Enterprise</span></div></div><div class=faq-tab-content id=pills-tabContent--cloud-security><div class=faq-tab id=pills-csm-pro x-show="'CSM PRO' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=cloud-security-csm-pro-who-is-this-for><a class=text-black href=#cloud-security-csm-pro-who-is-this-for>Who is this for?</a></dt><dd class=ps-0>CSM Pro is built to support multiple teams in discovering their existing cloud infrastructure, identifying issues that require attention, and evaluating their compliance readiness with cloud security posture management, all while providing guidance on how to address those gaps effectively.</dd><dt class="border-0 ps-0" id=cloud-security-csm-pro-can-i-purchase-csm-pro-for-some-hosts-and-csm-enterprise-for-the-rest-of-my-hosts><a class=text-black href=#cloud-security-csm-pro-can-i-purchase-csm-pro-for-some-hosts-and-csm-enterprise-for-the-rest-of-my-hosts>Can I purchase CSM Pro for some hosts, and CSM Enterprise for the rest of my hosts?</a></dt><dd class=ps-0>No, you may either purchase CSM Pro or CSM Enterprise for your organization, but not both.</dd><dt class="border-0 ps-0" id=cloud-security-csm-pro-what-kind-of-billing-plan-do-i-need-to-run-csm-pro><a class=text-black href=#cloud-security-csm-pro-what-kind-of-billing-plan-do-i-need-to-run-csm-pro>What kind of billing plan do I need to run CSM Pro?</a></dt><dd class=ps-0>CSM Pro can be purchased without needing any other Datadog plan. It does not require the purchase of an Infrastructure Monitoring plan.</dd><dt class="border-0 ps-0" id=cloud-security-csm-pro-what-counts-as-a-billable-host><a class=text-black href=#cloud-security-csm-pro-what-counts-as-a-billable-host>What counts as a billable host?</a></dt><dd class=ps-0>A host is any physical or virtual OS instance that you protect with Datadog using agent or agentless technology. It could be a server, VM, node (in the case of Kubernetes) or an App Service Plan instance (in the case of Azure App Services).</dd><dt class="border-0 ps-0" id=cloud-security-csm-pro-what-capabilities-are-included><a class=text-black href=#cloud-security-csm-pro-what-capabilities-are-included>What capabilities are included?</a></dt><dd class=ps-0>Continuous scanning for misconfigurations, vulnerability management for containers and hosts, a full inventory of your cloud resources, case management, and 5 workflow executions per host per license.</dd><dt class="border-0 ps-0" id=cloud-security-csm-pro-what-does-setup-involve><a class=text-black href=#cloud-security-csm-pro-what-does-setup-involve>What does setup involve?</a></dt><dd class=ps-0>Getting started requires cloud provider integrations and optionally the unified Datadog agent.</dd></dl></div><div class=faq-tab id=pills-csm-enterprise x-show="'CSM ENTERPRISE' == selected_category"><dl class=mb-0><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-who-is-this-for><a class=text-black href=#cloud-security-csm-enterprise-who-is-this-for>Who is this for?</a></dt><dd class=ps-0>CSM Enterprise is an advanced solution tailored specifically for security-minded teams that quickly maps, identifies, and prioritizes misconfigurations, threats, vulnerabilities and identity risks across their entire cloud infrastructure.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-can-i-purchase-csm-pro-for-some-hosts-and-csm-enterprise-for-the-rest-of-my-hosts><a class=text-black href=#cloud-security-csm-enterprise-can-i-purchase-csm-pro-for-some-hosts-and-csm-enterprise-for-the-rest-of-my-hosts>Can I purchase CSM Pro for some hosts, and CSM Enterprise for the rest of my hosts?</a></dt><dd class=ps-0>No, you may either purchase CSM Pro or CSM Enterprise for your organization, but not both.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-what-kind-of-billing-plan-do-i-need-to-run-csm-enterprise><a class=text-black href=#cloud-security-csm-enterprise-what-kind-of-billing-plan-do-i-need-to-run-csm-enterprise>What kind of billing plan do I need to run CSM Enterprise?</a></dt><dd class=ps-0>Every billable CSM Enterprise host requires the purchase of Enterprise Infrastructure Monitoring.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-what-capabilities-are-included><a class=text-black href=#cloud-security-csm-enterprise-what-capabilities-are-included>What capabilities are included?</a></dt><dd class=ps-0>Continuous scanning for misconfigurations, vulnerability management for container images and hosts, real-time threat detection, cloud infrastructure entitlement management, anomalous workload profile detection, a full inventory of your cloud resources, case management, 20 workflow executions per host, and 20 containers included per host license.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-is-infrastructure-monitoring-pro-or-enterprise-required-on-every-csm-enterprise-host><a class=text-black href=#cloud-security-csm-enterprise-is-infrastructure-monitoring-pro-or-enterprise-required-on-every-csm-enterprise-host>Is Infrastructure Monitoring Pro or Enterprise required on every CSM Enterprise Host</a></dt><dd class=ps-0>Yes, for example, if you subscribe for 10 CSM Enterprise Hosts, those hosts must also be subscribed for 10 Infrastructure Pro or Enterprise hosts. This applies to both committed and non-committed host usage.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-what-does-setup-involve><a class=text-black href=#cloud-security-csm-enterprise-what-does-setup-involve>What does setup involve?</a></dt><dd class=ps-0>Getting started requires cloud provider integrations and optionally the unified Datadog agent.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-why-are-workload-protection-and-csm-pro-listed-on-my-bill><a class=text-black href=#cloud-security-csm-enterprise-why-are-workload-protection-and-csm-pro-listed-on-my-bill>Why are Workload Protection and CSM Pro listed on my bill?</a></dt><dd class=ps-0>If you are using CSM Enterprise on demand, your bill will temporarily show the line items CSM Pro and Workload Protection. Those will be transitioned out by the end of year and replaced by a line item for CSM Enterprise only.</dd><dt class="border-0 ps-0" id=cloud-security-csm-enterprise-what-counts-as-a-billable-host><a class=text-black href=#cloud-security-csm-enterprise-what-counts-as-a-billable-host>What counts as a billable host?</a></dt><dd class=ps-0>A host is any physical or virtual OS instance that you monitor with Datadog. It could be a server, VM, node (in the case of Kubernetes) or App Service Plan instance (in the case of Azure App Services).</dd></dl></div></div><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-74" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'data-streams-monitoring' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=data-streams-monitoring><a class=text-black>Data Streams Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Track and improve the performance of your<br>streaming data pipelines from end to end</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['DSM'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['DSM'] ? pricing[region]['DSM'].annual_cost : ''">15</span><div class=price-helper-wrapper><span class="price-helper small">Per host, per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Detect slowdowns anywhere in your event-driven applications</p></li><li><p class=m-0>Localize and resolve pipeline bottlenecks and failures</p></li><li><p class=m-0>Remediate floods of backed-up messages</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['DSM'] ? pricing[region]['DSM'].on_demand_cost : ''">18</span> on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Out-of-the-box pipeline topology mapping</p></li><li class="list-item mb-1"><p class=font-18>Consumer lag and partition metrics</p></li><li class="list-item mb-1"><p class=font-18>End-to-end latency and throughput metrics</p></li><li class="list-item mb-1"><p class=font-18>Recommended monitors</p></li><li class="list-item mb-1"><p class=font-18>Correlated telemetry: traces, logs, and infrastructure metrics</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Schema tracking</p></li><li class="list-item mb-1"><p class=font-18>Team ownership information</p></li><li class="list-item mb-1"><p class=font-18>Custom dashboards</p></li><li class="list-item mb-1"><p class=font-18>Unlimited users</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><p class="fw-semibold small text-start text-uppercase">Serverless Applications</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div style="padding:0 6px"><p class=small>AWS Fargate</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">$2.9 per active application instances ($4.40 on-demand)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=data-streams-monitoring-common-questions><a class=text-black href=#data-streams-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=data-streams-monitoring-what-is-data-streams-monitoring-and-how-does-it-work><a class=text-black href=#data-streams-monitoring-what-is-data-streams-monitoring-and-how-does-it-work>What is Data Streams Monitoring and how does it work?</a></dt><dd class=ps-0>Datadog Data Streams Monitoring (DSM) allows you to track and improve the performance of event-driven applications that use Kafka, SQS, and RabbitMQ. DSM automatically maps dependencies between all services and queues, measures latency between them, and provides additional health metrics, such as consumer lag, across your streaming data pipeline to help you monitor it end to end.</dd><dt class="border-0 ps-0" id=data-streams-monitoring-what-counts-as-a-billable-dsm-host><a class=text-black href=#data-streams-monitoring-what-counts-as-a-billable-dsm-host>What counts as a billable DSM host?</a></dt><dd class=ps-0>A billable Data Streams Monitoring host is a host that has the Datadog Agent installed and producer and consumer services that are running on it and instrumented for DSM. Visit our <a href=https://docs.datadoghq.com/data_streams/>documentation</a> for additional setup information.</dd><dt class="border-0 ps-0" id=data-streams-monitoring-what-kind-of-billing-plan-do-i-need-to-run-data-streams-monitoring><a class=text-black href=#data-streams-monitoring-what-kind-of-billing-plan-do-i-need-to-run-data-streams-monitoring>What kind of billing plan do I need to run Data Streams Monitoring?</a></dt><dd class=ps-0>Every billable DSM host requires the purchase of Pro or Enterprise Infrastructure Monitoring, regardless if it is combined with APM. Annual, month-to-month, and on-demand billing plans are available. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><dt class="border-0 ps-0" id=data-streams-monitoring-can-i-purchase-data-streams-monitoring-as-part-of-a-bundle><a class=text-black href=#data-streams-monitoring-can-i-purchase-data-streams-monitoring-as-part-of-a-bundle>Can I purchase Data Streams Monitoring as part of a bundle?</a></dt><dd class=ps-0>Yes, Data Streams Monitoring is available bundled with APM as part of <a href="https://www.datadoghq.com/pricing/?product=apm#products">APM Pro and Enterprise</a> and enables DSM across your APM fleet.</dd><dt class="border-0 ps-0" id=data-streams-monitoring-what-technologies-do-you-support><a class=text-black href=#data-streams-monitoring-what-technologies-do-you-support>What Technologies do you support?</a></dt><dd class=ps-0>DSM currently supports Kafka, RabbitMQ, and SQS. For additional queueing technologies, we provide custom instrumentation options.</dd><dt class="border-0 ps-0" id=data-streams-monitoring-how-long-is-dsm-data-retained-for><a class=text-black href=#data-streams-monitoring-how-long-is-dsm-data-retained-for>How long is DSM data retained for?</a></dt><dd class=ps-0>Map history is stored for 30 days and all metrics are retained for 15 months.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-75" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'cloud-cost-management' ? 'active' : ''"><div class=multi-plan data-plan-count=3><h2 class=text-md-center id=cloud-cost-management><a class=text-black>Cloud Cost Management</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">A unified cost observability platform for Engineering and FinOps</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['ccm_cost_visibility'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Datadog Cost Visibility">Datadog Cost Visibility</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['ccm_cost_visibility'] ? pricing[region]['ccm_cost_visibility'].annual_cost : ''">0</span><div class=price-helper-wrapper><span class="price-helper small">Free</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Control your Datadog Costs</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Access cost data via MCP</p></li><li><p class="small fw-semibold">Surface costs in team dashboards</p></li><li><p class="small fw-semibold">Catch cost spikes early with alerts and anomaly detection</p></li><li><p class="small fw-semibold">Forecast spend to stay ahead of changes</p></li><li><p class="small fw-semibold">Set budgets and stay on track</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">Limited to Datadog costs only<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Datadog Cost Visibility" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['ccm_spend_monitored_pro'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Pro>Pro</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['ccm_spend_monitored_pro'] ? pricing[region]['ccm_spend_monitored_pro'].annual_cost : ''">5</span><div class=price-helper-wrapper><span class="price-helper small">Per $1,000 in cloud/SaaS spend,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Understand and optimize your cloud & SaaS costs</p><p class="small fw-semibold">Everything included in Datadog Cost Visibility, plus:</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Surface Kubernetes cost visibility automatically</p></li><li><p class="small fw-semibold">Allocate costs and generate finance-ready reports</p></li><li><p class="small fw-semibold">Drive optimization with actionable recommendations</p></li><li><p class="small fw-semibold">Investigate cost spikes with a FinOps agent for root cause analysis</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span x-text="pricing[region]['ccm_spend_monitored_pro'].on_demand_cost">7.20</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Pro" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['ccm_spend_monitored_ent'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Enterprise>Enterprise</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['ccm_spend_monitored_ent'] ? pricing[region]['ccm_spend_monitored_ent'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per $1,000 in cloud/SaaS spend,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Enterprise-grade FinOps with automation and governance</p><p class="small fw-semibold">Everything included in Pro, plus:</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Allocate shared costs precisely with Datadog metrics</p></li><li><p class="small fw-semibold">Gain real-time cost visibility from observability data</p></li><li><p class="small fw-semibold">Manage complex budgets across teams with hierarchical controls</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span x-text="pricing[region]['ccm_spend_monitored_ent'].on_demand_cost">15</span> on-demand<br></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Enterprise" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Pivot seamlessly to Service Catalog to understand Service performance</p></li><li class=mb-1><p class=font-18>Unify cost data with observability data to understand cost drivers</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical Support (Chat and Email)</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Datadog Cost Visibility
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Free</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Pro
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Pro</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Enterprise
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Enterprise</span></h4></div><p class="fw-semibold small text-start text-uppercase">Core Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Cost in Dashboards & Notebooks</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cost Monitors</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Cost Explorer</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cost Reports</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Software Catalog Integration</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cost Anomalies</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Kubernetes Cost Allocation</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>ECS Cost Allocation</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Tag Pipelines</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Custom Allocation Rules</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Basic (w/o split)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Advanced with Split by Metric</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Cost Recommendations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cost Forecasts</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Customize Cost Recommendations</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Bits Dev Agent (Open PR to Fix) (Preview)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>JIRA Integration</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Budgets</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Flat</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Flat</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small">Hierarchical</p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Commitment Program Reports</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Real-time costs (Preview)</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Custom Costs</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Access controls</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>FinOps Agent</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Case Management</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>MCP Server</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=cloud-cost-management-common-questions><a class=text-black href=#cloud-cost-management-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=cloud-cost-management-do-i-need-to-purchase-other-datadog-products-to-use-cloud-cost-management><a class=text-black href=#cloud-cost-management-do-i-need-to-purchase-other-datadog-products-to-use-cloud-cost-management>Do I need to purchase other Datadog products to use Cloud Cost Management?</a></dt><dd class=ps-0>Cloud Cost Management can be used as a standalone product, but it delivers the most value when paired with <a href=https://docs.datadoghq.com/infrastructure/hostmap>Infrastructure Monitoring</a> and <a href=https://docs.datadoghq.com/containers/>Container Monitoring</a>. Some capabilities, like <a href="https://docs.datadoghq.com/cloud_cost_management/allocation/container_cost_allocation/?tab=aws">container cost allocation</a> and <a href=https://docs.datadoghq.com/cloud_cost_management/recommendations#setup title="compute optimization recommendations" aria-label="compute optimization recommendations" rel="noopener noreferrer" target=_blank>compute optimization recommendations</a>, require those products.</dd><dt class="border-0 ps-0" id=cloud-cost-management-which-cloud-service-providers-is-this-available-for><a class=text-black href=#cloud-cost-management-which-cloud-service-providers-is-this-available-for>Which Cloud Service Providers is this available for?</a></dt><dd class=ps-0>Cloud Cost Management is available for AWS<span x-text="fedRegionSelected ? ', Azure, and OCI' : ', Azure, Google Cloud, and OCI'">, Azure, Google Cloud, and OCI</span>, with additional cost integrations available.</dd><dt class="border-0 ps-0" id=cloud-cost-management-does-cloud-cost-management-give-visibility-into-all-awsspan-x-textfedregionselected---azure-and-google-cloud---azure-google-cloud-and-oci-azure-google-cloud-and-ocispan-products><a class=text-black href=#cloud-cost-management-does-cloud-cost-management-give-visibility-into-all-awsspan-x-textfedregionselected---azure-and-google-cloud---azure-google-cloud-and-oci-azure-google-cloud-and-ocispan-products>Does Cloud Cost Management give visibility into all AWS<span x-text="fedRegionSelected ? ', Azure, and Google Cloud' : ', Azure, Google Cloud, and OCI'">, Azure, Google Cloud, and OCI</span> products?</a></dt><dd class=ps-0>Yes, you can see costs for all resources (including storage, databases, and more) in your cloud bill.</dd><dt class="border-0 ps-0" id=cloud-cost-management-is-this-available-in-all-regions><a class=text-black href=#cloud-cost-management-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes. Cloud Cost Management is available in all EU- and US-hosted accounts.</dd><dt class="border-0 ps-0" id=cloud-cost-management-do-you-have-special-offerings-for-partners><a class=text-black href=#cloud-cost-management-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We&rsquo;re always looking to partner with technology and service providers and resellers. See our <a href=https://www.datadoghq.com/partner/>Partners</a> page for more information.</dd><dt class="border-0 ps-0" id=cloud-cost-management-are-there-other-billing-options><a class=text-black href=#cloud-cost-management-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual, monthly, and custom billing options are available. In some cases, legacy host-based pricing models may still apply. Contact your Datadog representative for more details. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-76" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'database-monitoring' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=database-monitoring><a class=text-black>Database Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Surface slow performing queries and optimize application performance</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['HOSTS-DBM'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['HOSTS-DBM'] ? pricing[region]['HOSTS-DBM'].annual_cost : ''">70</span><div class=price-helper-wrapper><span class="price-helper small">Per database host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Track normalized query performance trends using database-generated metrics</p></li><li><p class=m-0>Correlate query performance with database infrastructure metrics</p></li><li><p class=m-0>Access all of your database insights, database hosts, clusters, and applications</p></li><li><p class=m-0>Extract valuable data without compromising database security</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['HOSTS-DBM'] ? pricing[region]['HOSTS-DBM'].on_demand_cost : ''">84</span> on-demand</p><a data-dd-action-name="card: button: start free trial: " href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>In-depth explain plans</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box slow query detection</p></li><li class="list-item mb-1"><p class=font-18>200 normalized queries <a href=https://www.datadoghq.com/pricing/allotments/>allotted</a> per host</p></li><li class="list-item mb-1"><p class=font-18>Automatic PII obfuscation from all query data</p></li><li class="list-item mb-1"><p class=font-18>No code instrumentation needed</p></li><li class="list-item mb-1"><p class=font-18>Unlimited user accounts</p></li><li class="list-item mb-1"><p class=font-18>Automatically detect, test, and deploy optimizations for your databases</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Tag-based query filtering and grouping</p></li><li class="list-item mb-1"><p class=font-18>Access to hundreds of relevant database metrics</p></li><li class="list-item mb-1"><p class=font-18>Total visibility into your Postgres, MySQL, SQL Server, Oracle, MongoDB, ClickHouse, and Supabase databases whether self-hosted or managed</p></li><li class="list-item mb-1"><p class=font-18>Out-of-the-box database list with active connections and in-depth wait event analysis</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Set triggers to alert teams on abnormal query trends</p></li><li class=mb-1><p class=font-18>Visualize and easily share insights with key stakeholders via Datadog Screenboards</p></li><li class=mb-1><p class=font-18>Out of the box support for dashboards, monitors, SLOs and advanced formulas and functions</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support across chat and email</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li><li class=mb-1><p class=font-18><a href=https://www.datadoghq.com/support-services/plans/>Plans with the right level of support for your organization</a></p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=database-monitoring-common-questions><a class=text-black href=#database-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=database-monitoring-how-do-you-define-a-database-host><a class=text-black href=#database-monitoring-how-do-you-define-a-database-host>How do you define a database host?</a></dt><dd class=ps-0><p>A database host is any physical or virtual instance hosting your database on a server that you monitor with Datadog.</p><p><em>Note: Azure SQL Database deploys a database in an isolated network; each database is treated as a single host.</em></p></dd><dt class="border-0 ps-0" id=database-monitoring-what-databases-are-supported><a class=text-black href=#database-monitoring-what-databases-are-supported>What databases are supported?</a></dt><dd class=ps-0>We support <a href=https://docs.datadoghq.com/database_monitoring/setup_documentdb/>Amazon DocumentDB</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_clickhouse/>ClickHouse</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_mongodb/>MongoDB</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_mysql/>MySQL</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_oracle/>Oracle</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_postgres/>Postgres</a>, <a href=https://docs.datadoghq.com/database_monitoring/setup_postgres/supabase/cloud/>Supabase</a>, and <a href=https://docs.datadoghq.com/database_monitoring/setup_sql_server/>SQL Server</a> databases at this time, whether they be on-premise, self-managed, or cloud-hosted. In the future, we plan to support additional databases.</dd><dt class="border-0 ps-0" id=database-monitoring-can-i-purchase-database-monitoring-dbm-standalone><a class=text-black href=#database-monitoring-can-i-purchase-database-monitoring-dbm-standalone>Can I purchase Database Monitoring (DBM) standalone?</a></dt><dd class=ps-0>No, you need to be an existing Infrastructure Monitoring customer to purchase Database Monitoring.</dd><dt class="border-0 ps-0" id=database-monitoring-i-am-an-existing-infrastructure-monitoring-customer-can-i-purchase-dbm-for-a-portion-of-my-database-hosts><a class=text-black href=#database-monitoring-i-am-an-existing-infrastructure-monitoring-customer-can-i-purchase-dbm-for-a-portion-of-my-database-hosts>I am an existing Infrastructure Monitoring customer. Can I purchase DBM for a portion of my database hosts?</a></dt><dd class=ps-0>Yes, you can purchase Database Monitoring (DBM) for one, some, or all of your database hosts!</dd><dt class="border-0 ps-0" id=database-monitoring-what-are-query-explain-plans-and-how-are-they-useful><a class=text-black href=#database-monitoring-what-are-query-explain-plans-and-how-are-they-useful>What are (query) explain plans and how are they useful?</a></dt><dd class=ps-0>A <em>query explain plan</em> or <em>query execution plan</em> describes the steps used to access data and enables you to locate hotspots. We automatically capture explain plans for all queries to make sure that you have sample available during critical moments.</dd><dt class="border-0 ps-0" id=database-monitoring-how-long-is-dbm-data-retained><a class=text-black href=#database-monitoring-how-long-is-dbm-data-retained>How long is DBM data retained?</a></dt><dd class=ps-0><ul><li>Query metrics are retained for 15 months</li><li>Explain plans and query samples are retained for 15 days</li></ul></dd><dt class="border-0 ps-0" id=database-monitoring-how-does-dbm-work><a class=text-black href=#database-monitoring-how-does-dbm-work>How does DBM work?</a></dt><dd class=ps-0>DBM uses the Datadog Agent to capture data from your databases. Please see our <a href=https://docs.datadoghq.com>documentation</a> for more information.</dd><dt class="border-0 ps-0" id=database-monitoring-does-dbm-require-the-use-of-an-additional-agent><a class=text-black href=#database-monitoring-does-dbm-require-the-use-of-an-additional-agent>Does DBM require the use of an additional agent?</a></dt><dd class=ps-0>No, as long as you are an Infrastructure Monitoring customer and already have the standard Datadog Agent set up, you are able to use Database Monitoring. Check out our <a href=https://docs.datadoghq.com>docs</a> page for details.</dd><dt class="border-0 ps-0" id=database-monitoring-what-are-normalized-queries><a class=text-black href=#database-monitoring-what-are-normalized-queries>What are normalized queries?</a></dt><dd class=ps-0>Identical queries with different parameters are grouped together by obfuscating the parameters. These query groups are called normalized queries and are sometimes referred to as query digests. Each database host comes with an allotment of 200 normalized queries. Obfuscating parameters at the agent level also ensures that no sensitive data is forwarded.</dd><dt class="border-0 ps-0" id=database-monitoring-are-there-other-billing-options><a class=text-black href=#database-monitoring-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual and monthly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our <a href=https://docs.datadoghq.com/account_management/billing/>Billing FAQ</a>.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-77" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'observability-pipelines' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=observability-pipelines><a class=text-black>Observability Pipelines</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Aggregate, process, and route log data in your own environment at scale</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['OBS-PIPES'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['OBS-PIPES'] ? pricing[region]['OBS-PIPES'].annual_cost : ''">0.095</span><div class=price-helper-wrapper><span class="price-helper small">Per ingested GB<br>per month* **</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Per Ingest" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">Billed per GB of uncompressed data ingested<br>**Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['OBS-PIPES'] ? pricing[region]['OBS-PIPES'].on_demand_cost : ''">0.12</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Per Ingest" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><p class=mt-0>Per vCPU pricing, recommended for volumes above 30TB/month, is also available***<br><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*** Billed annually per vCPU allocated to Observability Pipelines Worker</p></p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Predictable pricing and accounts for spike and changes in volume with vCPU pricing</p></li><li class="list-item mb-1"><p class=font-18>Aggregate logs from a variety of sources</p></li><li class="list-item mb-1"><p class=font-18>Make decisions before data leaves your environment</p></li><li class="list-item mb-1"><p class=font-18>Control costs by filtering or sampling noisy or uninteresting logs</p></li><li class="list-item mb-1"><p class=font-18>Reduce the size of events by dropping unnecessary fields</p></li><li class="list-item mb-1"><p class=font-18>Easily dual ship logs to destinations</p></li><li class="list-item mb-1"><p class=font-18>Store logs in an archive of your choosing and explore them via <a href="https://www.datadoghq.com/pricing/?product=archive-search#products">Archive Search</a></p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Redact sensitive data with custom rules or with <a href=https://docs.datadoghq.com/sensitive_data_scanner/library_rules/>Sensitive Data Scanner library rules</a></p></li><li class="list-item mb-1"><p class=font-18>Easily scale to petabytes of logs per day</p></li><li class="list-item mb-1"><p class=font-18>Remotely deploy changes to any pipelines running in your infrastructure</p></li><li class="list-item mb-1"><p class=font-18>Monitor the health of all of your telemetry pipelines at scale</p></li><li class="list-item mb-1"><p class=font-18>Identify bottlenecks and verify data delivery in all your pipelines</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class=col-12><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical support (Chat and Email)</p></li><li class=mb-1><p class=font-18>Community Forum, Robust Open Source Community, and Online Docs</p></li></ul></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=observability-pipelines-common-questions><a class=text-black href=#observability-pipelines-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=observability-pipelines-how-does-observability-pipelines-work><a class=text-black href=#observability-pipelines-how-does-observability-pipelines-work>How does Observability Pipelines work?</a></dt><dd class=ps-0>Observability Pipelines gives the freedom to collect, transform, and route logs in your own environment in order to control costs, reduce lock-in, enhance security, and standardize data. You can learn more about how it works in our <a href=https://docs.datadoghq.com/observability_pipelines/>documentation</a>.</dd><dt class="border-0 ps-0" id=observability-pipelines-where-does-observability-pipelines-run><a class=text-black href=#observability-pipelines-where-does-observability-pipelines-run>Where does Observability Pipelines run?</a></dt><dd class=ps-0><a href=https://docs.datadoghq.com/observability_pipelines/>Observability Pipelines Worker</a> runs in your own infrastructure. It can be installed anywhere in your infrastructure with a simple configuration and Datadog API key. This allows you to make decisions and control costs before data leaves your environment. To learn more about the setup process, check out our documentation here.</dd><dt class="border-0 ps-0" id=observability-pipelines-what-are-the-benefits-of-the-per-gb-ingest-pricing><a class=text-black href=#observability-pipelines-what-are-the-benefits-of-the-per-gb-ingest-pricing>What are the benefits of the per GB ingest pricing?</a></dt><dd class=ps-0><p>This is suited for organizations with volumes below 30TB/month. It is cost effective at lower volumes and easy to understand, as well as allowing you to pay based on your usage as you scale or ramp up early on.</p><p>However, your bill will increase at a linear rate as your volume increases, so if you are expecting your observability volume to balloon in the near future, the vCPU pricing may work better for your organization.</p></dd><dt class="border-0 ps-0" id=observability-pipelines-what-are-the-benefits-of-the-per-vcpu-pricing><a class=text-black href=#observability-pipelines-what-are-the-benefits-of-the-per-vcpu-pricing>What are the benefits of the per vCPU pricing?</a></dt><dd class=ps-0>Per vCPU pricing is suited for volumes above 30TB/month, as it scales better especially at high volumes. In addition, the per vCPU pricing gives you predictable pricing year round if you expect frequent spikes or changes to your organization’s volume of observability data. Finally, it allows you to scale your computational resources based on the intensity of the processing required.</dd><dt class="border-0 ps-0" id=observability-pipelines-how-many-vcpus-do-i-need><a class=text-black href=#observability-pipelines-how-many-vcpus-do-i-need>How many vCPUs do I need?</a></dt><dd class=ps-0><p>Sizing and resource provisioning for Observability Pipelines Worker depends on various factors, such as the pipeline configuration and workload. Generally speaking, we recommend provisioning 1 vCPU for every 30TB/month.</p><p>Read our documentation on <a href=https://docs.datadoghq.com/observability_pipelines/best_practices_for_scaling_observability_pipelines/#capacity-planning-and-scaling>Capacity Planning and Scaling</a> for additional details.</p></dd><dt class="border-0 ps-0" id=observability-pipelines-what-happens-if-i-send-an-unexpectedly-high-volume-of-data><a class=text-black href=#observability-pipelines-what-happens-if-i-send-an-unexpectedly-high-volume-of-data>What happens if I send an unexpectedly high volume of data?</a></dt><dd class=ps-0><p>Committing to vCPU pricing model allows you to absorb spikes in volume.</p><p>Even if you&rsquo;re paying based on ingested volume, by committing to a monthly volume of data, you are not rate-limited based on a single day’s volume. Send as much data as you need on any given day without losing visibility. Assuming your average is lower on other days, your bill is unaffected. In those cases where you have a big month, not to worry! You maintain complete visibility and may be subject to overages only on the volumes that exceed your commitment.</p></dd><dt class="border-0 ps-0" id=observability-pipelines-are-there-other-billing-options><a class=text-black href=#observability-pipelines-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual and monthly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our Billing FAQ.</dd><dt class="border-0 ps-0" id=observability-pipelines-do-you-have-special-offerings-for-partners><a class=text-black href=#observability-pipelines-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We’re always looking to partner with technology and service providers and resellers. See our Partner Network page for more.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-78" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'app-and-api-protection' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=app-and-api-protection><a class=text-black>App and API Protection</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Secure web-apps and APIs with context-aware vulnerability and threat management</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['APPSEC-HOSTS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['APPSEC-HOSTS'] ? pricing[region]['APPSEC-HOSTS'].annual_cost : ''">31</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Threat Management" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Detect OWASP attacks in real-time</p></li><li><p class=m-0>Protect web application by blocking suspicious requests or bad actors</p></li><li><p class=m-0>Investigate with runtime execution context and attack flow</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['APPSEC-HOSTS'] ? pricing[region]['APPSEC-HOSTS'].on_demand_cost : ''">36</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Threat Management" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Context rich signals by leveraging distributed traces</p></li><li class="list-item mb-1"><p class=font-18>Pivot to observability telemetry during investigations</p></li><li class="list-item mb-1"><p class=font-18>Deployment in minutes</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Unlimited user accounts</p></li><li class="list-item mb-1"><p class=font-18>15-month retention of security signals</p></li><li class="list-item mb-1"><p class=font-18>90 day retention of suspicious requests</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"><div class="col-12 col-md-6"><p class="fw-semibold small">When Combined with Other Plans</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>One interface to correlate application threats with host & workload level threats or misconfiguration</p></li></ul></div><div class="col-12 col-md-6"><p class="fw-semibold small">Service and Support</p><hr class=border-gray-light><ul class="dashed-list mb-1"><li class=mb-1><p class=font-18>Technical Support (Chat and Email)</p></li><li class=mb-1><p class=font-18>Community Forum and Online Docs</p></li></ul></div></div></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><p class="fw-semibold small text-start text-uppercase">Add-ons</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-6 style="padding:0 6px"><p class=small>Threat Management for AWS Fargate</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">$<span x-text="pricing[region]['FARGATE-ASM'] ? pricing[region]['FARGATE-ASM'].annual_cost : ''">2</span> per task ($<span x-text="pricing[region]['FARGATE-ASM'] ? pricing[region]['FARGATE-ASM'].on_demand_cost : ''">2.90</span> on demand)</p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-6 style="padding:0 6px"><p class=small>Serverless Applications - AWS Lambda, GCP Cloud Run, Azure App Service, Azure Container Apps, Azure Function</p></div><div class=col-6 style="padding:0 6px"><p class="text-center small">$<span x-text="pricing[region]['SERVERLESS-ASM'] ? pricing[region]['SERVERLESS-ASM'].annual_cost : ''">2</span> per million traced invocations ($<span x-text="pricing[region]['SERVERLESS-ASM'] ? pricing[region]['SERVERLESS-ASM'].on_demand_cost : ''">2.90</span> on demand)</p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=app-and-api-protection-common-questions><a class=text-black href=#app-and-api-protection-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=app-and-api-protection-is-app-and-api-protection-a-standalone-offering-can-app-and-api-protection-threat-management-be-sold-separately><a class=text-black href=#app-and-api-protection-is-app-and-api-protection-a-standalone-offering-can-app-and-api-protection-threat-management-be-sold-separately>Is App and API Protection a standalone offering? Can App and API Protection (Threat Management) be sold separately?</a></dt><dd class=ps-0>App and API Protection can be sold separately, but requires Datadog Infrastructure Monitoring.</dd><dt class="border-0 ps-0" id=app-and-api-protection-how-does-app-and-api-protection-work><a class=text-black href=#app-and-api-protection-how-does-app-and-api-protection-work>How does App and API Protection work?</a></dt><dd class=ps-0>App and API Protection leverages Datadog libraries to detect threats on your applications. The library embeds an in-app WAF to detect and block attacks based on configurable rules. Please refer to the <a href=https://docs.datadoghq.com/security/application_security/how-appsec-works/>documentation</a> to learn more.</dd><dt class="border-0 ps-0" id=app-and-api-protection-what-counts-as-a-billable-app-and-api-protection-host><a class=text-black href=#app-and-api-protection-what-counts-as-a-billable-app-and-api-protection-host>What counts as a billable App and API Protection host?</a></dt><dd class=ps-0>Similar to APM, a billable App and API Protection host is a host on which App and API Protection is enabled and that is actively submitting spans to the Datadog SaaS application.</dd><dt class="border-0 ps-0" id=app-and-api-protection-what-languages-does-app-and-api-protection-support><a class=text-black href=#app-and-api-protection-what-languages-does-app-and-api-protection-support>What languages does App and API Protection support?</a></dt><dd class=ps-0>Java, Ruby, Go, Node, .NET and PHP. Python. App and API Protection also supports Fargate environments as well as serverless functions.</dd><dt class="border-0 ps-0" id=app-and-api-protection-do-i-have-to-deploy-the-product-across-all-my-apm-hosts><a class=text-black href=#app-and-api-protection-do-i-have-to-deploy-the-product-across-all-my-apm-hosts>Do I have to deploy the product across all my APM hosts?</a></dt><dd class=ps-0>No, you have the ability to select the service to activate the product with.</dd><dt class="border-0 ps-0" id=app-and-api-protection-are-there-other-billing-options><a class=text-black href=#app-and-api-protection-are-there-other-billing-options>Are there other billing options?</a></dt><dd class=ps-0>Annual, monthly and hourly plans are available. We can customize billing plans to meet your needs. For a detailed explanation of billing, please see our Billing FAQ.</dd><dt class="border-0 ps-0" id=app-and-api-protection-is-this-available-in-all-regions><a class=text-black href=#app-and-api-protection-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Yes. App and API Protection is available in all EU-, JP- and US-hosted accounts.</dd><dt class="border-0 ps-0" id=app-and-api-protection-do-you-have-special-offerings-for-partners><a class=text-black href=#app-and-api-protection-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We’re always looking to partner with technology and service providers and resellers. See our Partners page for more.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-79" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'archive-search' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=archive-search><a class=text-black>Archive Search</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Search live and historical logs in one query experience</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['LOGS-ARCHIVE-SEARCH'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['LOGS-ARCHIVE-SEARCH'] ? pricing[region]['LOGS-ARCHIVE-SEARCH'].annual_cost : ''">0.05</span><div class=price-helper-wrapper><span class="price-helper small">Per GB scanned * **</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Archive Search" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*No minimum scan size. No scan limits. Customers are billed proportionally to scan volume. Rehydrating logs or electing to retain results for longer than 24 hours will incur indexing costs.<br>**Billed annually at $<span x-text="pricing[region]['LOGS-ARCHIVE-SEARCH'] ? pricing[region]['LOGS-ARCHIVE-SEARCH'].annual_cost : ''">0.05</span> per GB of committed scan capacity or monthly at $<span x-text="pricing[region]['LOGS-ARCHIVE-SEARCH'] ? pricing[region]['LOGS-ARCHIVE-SEARCH'].on_demand_cost : ''">0.07</span> per GB scanned on-demand<br></p><a data-dd-action-name="card: button: start free trial: Archive Search" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Scan archived logs anytime with on-demand billing or committed monthly capacity for predictable, economical pricing</p></li><li class="list-item mb-1"><p class=font-18>Sample queries before scanning, then explore correlated results immediately as they stream in</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Define favorite attributes on your archives to narrow scans, reducing cost and query time</p></li><li class="list-item mb-1"><p class=font-18>Retain up to 100K results for 24 hours with no indexing charges</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=archive-search-common-questions><a class=text-black href=#archive-search-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=archive-search-what-is-archive-search><a class=text-black href=#archive-search-what-is-archive-search>What is Archive Search?</a></dt><dd class=ps-0>Archive Search lets you run precise ad-hoc searches directly on your archived logs in cold storage within Datadog, with no rehydration required. Results stream in real time and are retained for 24 hours, up to 100K logs.</dd><dt class="border-0 ps-0" id=archive-search-how-long-are-search-results-retained><a class=text-black href=#archive-search-how-long-are-search-results-retained>How long are search results retained?</a></dt><dd class=ps-0>Search results are retained for 24 hours, up to 100K logs, at no indexing cost. If you need to retain more than 100K results or keep results for longer than 24 hours, rehydration will incur standard indexing costs (Flex or Standard).</dd><dt class="border-0 ps-0" id=archive-search-how-does-archive-search-differ-from-rehydration><a class=text-black href=#archive-search-how-does-archive-search-differ-from-rehydration>How does Archive Search differ from Rehydration?</a></dt><dd class=ps-0>Archive Search streams results in real time as logs are scanned and allows you to sample queries before running a full scan. Rehydration re-indexes logs back into Datadog for full long-term access but incurs indexing costs for all results.</dd><dt class="border-0 ps-0" id=archive-search-do-you-have-special-offerings-for-partners><a class=text-black href=#archive-search-do-you-have-special-offerings-for-partners>Do you have special offerings for partners?</a></dt><dd class=ps-0>We&rsquo;re always looking to partner with technology and service providers and resellers. See our <a href=https://www.datadoghq.com/partner/>Partner Network page</a> for more.</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-80" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'jobs-monitoring' ? 'active' : ''"><div class=multi-plan data-plan-count=3><h2 class=text-md-center id=jobs-monitoring><a class=text-black>Data Observability: Jobs Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Observe, troubleshoot, and optimize jobs across your data pipelines</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['DJM-HOST-HR'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Clusters>Clusters</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Databricks and Apache Spark</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['DJM-HOST-HR'] ? pricing[region]['DJM-HOST-HR'].annual_cost : ''">0.05</span><div class=price-helper-wrapper><span class="price-helper small">Per host, per hour*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Observe, troubleshoot, and optimize jobs running on clusters</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Monitor Databricks and Spark jobs running on K8s, Amazon EMR and Google Dataproc</p></li><li><p class="small fw-semibold">Detect failing and long-running jobs</p></li><li><p class="small fw-semibold">Quickly pinpoint and resolve the root cause of failed and long-running jobs</p></li><li><p class="small fw-semibold">Reduce costs by optimizing misallocated clusters and inefficient jobs</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['DJM-HOST-HR'] ? pricing[region]['DJM-HOST-HR'].on_demand_cost : ''">0.072</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Clusters" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: true}" :class="pricing[region]['DO-JOBS-MONITORING-SERVERLESS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Serverless>Serverless</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Databricks</p><hr class="mb-1 mb-md-2 w-100 border-gray"><div class="text-center price price-container" x-show="! custom"><div class=price-helper-wrapper><span class="price-helper small">Per job, per hour*</span></div></div><div class="text-center price-custom" x-show=custom><div class="d-flex flex-column justify-content-center"><p class="d-block fw-semibold js-modal-demo" data-dd-action-name="card: button: contact us for pricing: Serverless">Contact Us for Pricing</p></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Observe, troubleshoot, and optimize jobs running on serverless compute</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Monitor Databricks serverless jobs</p></li><li><p class="small fw-semibold">Detect failing and long-running jobs</p></li><li><p class="small fw-semibold">Quickly pinpoint and resolve the root cause of failed and long-running jobs</p></li><li><p class="small fw-semibold">Recommendations to optimize code and queries</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''"></p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Serverless" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a>
<a data-dd-action-name="card: button: lets talk: Serverless" class="btn cta-btn text-white w-100 js-modal-demo custom-pricing-cta cursor-pointer my-2" x-show=custom>Let's Talk</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-4" x-data="{custom: false}" :class="pricing[region]['DO-JOBS-MONITORING-ORCHESTRATORS'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name=Orchestrators>Orchestrators</p><p class="text-purple mt-0 font-14-18 fw-bold text-uppercase text-center d-flex flex-column align-items-center justify-content-end">Airflow and dbt</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['DO-JOBS-MONITORING-ORCHESTRATORS'] ? pricing[region]['DO-JOBS-MONITORING-ORCHESTRATORS'].annual_cost : ''">0.10</span><div class=price-helper-wrapper><span class="price-helper small">Per job, per hour*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Observe and troubleshoot pipeline orchestrators jobs</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Monitor Airflow DAGs and tasks; DBT jobs and models</p></li><li><p class="small fw-semibold">Detect failing and long-running jobs</p></li><li><p class="small fw-semibold">Quickly pinpoint and resolve the root cause of failed and long-running jobs</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['DO-JOBS-MONITORING-ORCHESTRATORS'] ? pricing[region]['DO-JOBS-MONITORING-ORCHESTRATORS'].on_demand_cost : ''">0.144</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Orchestrators" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Clusters
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Databricks and Apache Spark</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Serverless
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Databricks</span></h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Orchestrators
<span class="w-100 d-block text-purple mt-0 font-14-18 fw-bold text-uppercase">Airflow and dbt</span></h4></div><p class="fw-semibold small text-start text-uppercase">Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Alerts for failed and long-running jobs</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Job run status and duration history</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Job run tracing with failure error messages</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Correlate job logs to run details</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Data Lineage</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Cost Visibility**</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Recommendations to optimize code & queries</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Detailed performance and resource utilization metrics</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Recommendations to optimize cluster configuration</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div></div></div><p class="small mt-2 mb-0">**Cost estimate using list prices. Accurate costs reflecting contract discounts are shown when used with Cloud Cost Management.</p></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=jobs-monitoring-common-questions><a class=text-black href=#jobs-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=jobs-monitoring-how-do-i-set-up-data-observability-jobs-monitoring><a class=text-black href=#jobs-monitoring-how-do-i-set-up-data-observability-jobs-monitoring>How do I set up Data Observability: Jobs Monitoring?</a></dt><dd class=ps-0>Setup differs between technologies. Follow our <a href=https://docs.datadoghq.com/data_jobs/#setup>setup guides</a> for each supported technology.</dd><dt class="border-0 ps-0" id=jobs-monitoring-what-is-the-default-retention-for-job-run-data><a class=text-black href=#jobs-monitoring-what-is-the-default-retention-for-job-run-data>What is the default retention for job run data?</a></dt><dd class=ps-0>90 days for job run execution traces and 15 months for metrics.</dd><dt class="border-0 ps-0" id=jobs-monitoring-how-is-data-observability-jobs-monitoring-for-clusters-usage-calculated-and-how-is-it-billed><a class=text-black href=#jobs-monitoring-how-is-data-observability-jobs-monitoring-for-clusters-usage-calculated-and-how-is-it-billed>How is Data Observability: Jobs Monitoring for Clusters usage calculated, and how is it billed?</a></dt><dd class=ps-0><p>Data Observability: Jobs Monitoring for Clusters is billed per host, per hour. This uses an average host count per hour, by sampling the number of unique hosts instrumented every five minutes and taking an average of those samples.</p><p><span class=text-underline>Example</span>: Suppose we observe:<br>1:00-1:05 pm: 100 unique hosts<br>1:05-1:10 pm: 300 unique hosts<br>1:10-1:15 pm: 150 unique hosts<br>1:15-1:20 pm: 50 unique hosts<br>1:20-2:00 pm (last 8 intervals): 0 unique hosts</p><p>The sum of unique host counts in each five-minute interval for the hour is 100 + 300 + 150 + 50 = 600. Since there are 12 five-minute intervals in one hour, we would then divide this sum by 12 to get the average, leading to 600 / 12 = 50.</p><p>Assume we see this usage pattern once a day for 30 days. This would result in a monthly total of 50 x 30 = 1,500 billable Data Observability Job Host Hours.</p></dd><dt class="border-0 ps-0" id=jobs-monitoring-how-is-usage-for-data-observability-jobs-monitoring-for-orchestrators-calculated-and-how-is-it-billed><a class=text-black href=#jobs-monitoring-how-is-usage-for-data-observability-jobs-monitoring-for-orchestrators-calculated-and-how-is-it-billed>How is usage for Data Observability: Jobs Monitoring for Orchestrators calculated, and how is it billed?</a></dt><dd class=ps-0><p>Data Observability: Jobs Monitoring for Orchestrators is billed <strong>per job, per hour</strong>. Usage is calculated by summing the duration of each monitored job run (in hours) across the entire month.</p><p><span class=text-underline>Example</span>: Suppose we observe:<br>Job 1, Run 1 duration: 3.4 hours<br>Job 2, Run 2 duration: 0.1 hours<br>Job 1, Run 2 duration: 5 hours<br>Job 2, Run 2 duration: 0.15 hours<br>Job 2, Run 3 duration: 0.25 hours</p><p>The sum of the hours for all the runs is 3.4 + 0.1 + 5 + 0.15 + 0.25 = 8.9. We round to the next full hour making the usage for the month 9 Data Observability Job Hours.</p></dd><dt class="border-0 ps-0" id=jobs-monitoring-does-using-data-observability-jobs-monitoring-generate-usage-of-other-datadog-products><a class=text-black href=#jobs-monitoring-does-using-data-observability-jobs-monitoring-generate-usage-of-other-datadog-products>Does using Data Observability: Jobs Monitoring generate usage of other Datadog products?</a></dt><dd class=ps-0><p>Data Observability: Jobs Monitoring for Clusters job execution traces generate Span Ingestion and Span Indexing usage, which may lead to additional charges beyond the allotted 0.205 GB Ingested Spans and 1,370 Indexed Spans per Jobs Monitoring host, per hour.</p><p>Data Observability: Jobs Monitoring for Clusters generates container monitoring usage for jobs on Kubernetes (K8s) and there is an allotment of 10 Jobs Monitoring containers per host.</p><p>Enabling log collection (optional) when using Data Observability: Jobs Monitoring is billed via Datadog Log Management.</p></dd><dt class="border-0 ps-0" id=jobs-monitoring-do-hosts-monitored-by-data-observability-jobs-monitoring-for-clusters-also-count-as-infrastructure-hosts><a class=text-black href=#jobs-monitoring-do-hosts-monitored-by-data-observability-jobs-monitoring-for-clusters-also-count-as-infrastructure-hosts>Do hosts monitored by Data Observability: Jobs Monitoring for Clusters also count as Infrastructure hosts?</a></dt><dd class=ps-0><p>Hosts where Jobs Monitoring is enabled do not require Infrastructure Monitoring and are not billed as Infrastructure hosts, except in the case of Spark on Kubernetes (K8s).</p><p>For Spark on Kubernetes (K8s), any node running the Datadog agent is counted as an Infrastructure host, but only nodes where Spark jobs are actively running count toward Data Observability Job Host Hours.</p></dd><dt class="border-0 ps-0" id=jobs-monitoring-is-this-available-in-all-regions><a class=text-black href=#jobs-monitoring-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Data Observability: Jobs Monitoring is available in all our AP, EU, and US data centers. It is currently not available in GovCloud (US).</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-81" x-data="{
                            selected_category: '',
                            categories: [
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'quality-monitoring' ? 'active' : ''"><div class=single-plan data-plan-count=1><h2 class=text-md-center id=quality-monitoring><a class=text-black>Data Observability: Quality Monitoring</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Detect, resolve, and prevent data issues across your entire data stack</h3><div class="d-none d-md-flex mt-0 mb-1"><div class="w-100 border-top pricing-border-primary"></div></div><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })" :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><div class="plan
position-relative
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="pricing[region]['DO-QUALITY-MONITORING'] ? '' : `${region}-pricing-disabled`"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['DO-QUALITY-MONITORING'] ? pricing[region]['DO-QUALITY-MONITORING'].annual_cost : ''">16</span><div class=price-helper-wrapper><span class="price-helper small">Per Monitored Table, per Month*<br>or $<span x-text="pricing[region]['DO-QUALITY-MONITORING'] ? pricing[region]['DO-QUALITY-MONITORING'].on_demand_cost : ''">24</span> on-demand</span></div></div><hr class="w-100 mt-1 mt-md-2 d-md-none border-gray"><div class="mt-auto w-100 text-center"><a data-dd-action-name="card: button: start free trial: Quality Monitoring" href=# class="js-cta-PricingCTA d-none d-md-inline-block pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div><ul class="key-points dash-list mb-2"><li><p class=m-0>Proactively identify data issues before downstream BI and AI applications are impacted</p></li></ul><p class="d-inline-block mb-2 mb-md-0 mt-0 small price-fine-print">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['DO-QUALITY-MONITORING'] ? pricing[region]['DO-QUALITY-MONITORING'].on_demand_cost : ''">24</span> on-demand</p><a data-dd-action-name="card: button: start free trial: Quality Monitoring" href=# class="js-cta-PricingCTA d-block d-md-none pricing-bg-color-1 sign-up-trigger btn cta-btn mt-2 mb-2">Start Free Trial</a></div></div></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="row features mb-6"><div class=col-12><div class="d-none d-md-flex mb-3 w-100 border-top border-primary"></div><div class="row mb-1"><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Out-of-the-box data quality monitors like row count, freshness, uniqueness, and nullness</p></li><li class="list-item mb-1"><p class=font-18>Bulk monitor creation using tags and rules</p></li><li class="list-item mb-1"><p class=font-18>Anomaly detection powered by machine learning and built for data quality, adapting to seasonality, trends, and annotations</p></li><li class="list-item mb-1"><p class=font-18>Flexible alert configuration with manual thresholds, custom SQL, and GROUP BY monitors</p></li></ul></div><div class="col-md-6 feature-list"><ul class="dashed-list mb-0"><li class="list-item mb-1"><p class=font-18>Column-level data warehouse lineage derived from query history</p></li><li class="list-item mb-1"><p class=font-18>End-to-end lineage from warehouse to downstream systems and BI tools</p></li><li class="list-item mb-1"><p class=font-18>Platform correlation with Data Streams Monitoring and Jobs Monitoring</p></li><li class="list-item mb-1"><p class=font-18>OpenLineage support for custom and open-source tools</p></li></ul></div></div><div class="row flex-column-reverse other-features mb-1 flex-md-row mt-6"></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=quality-monitoring-common-questions><a class=text-black href=#quality-monitoring-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=quality-monitoring-what-is-a-monitored-table><a class=text-black href=#quality-monitoring-what-is-a-monitored-table>What is a monitored table?</a></dt><dd class=ps-0><p>Datadog lets you sync as many tables as you want from your warehouse or database without counting them as monitored tables. These only count as monitored tables once you add a monitor (a quality check like freshness, nullness, or row count) to a table, view, materialized view, or column.</p><p><strong>Standard monitors</strong>: All standard monitors — freshness, row count, nullness, uniqueness — on a given table count as just one monitored table, no matter how many you add or whether they&rsquo;re applied to the table or to individual columns within it.<br><strong>Custom SQL monitors</strong>: Each unique custom SQL monitor adds one additional monitored table, on top of any standard monitor count.<br></p><p>Example: A table with a freshness monitor and a row count monitor (1 monitored table, since both are standard) and three custom SQL monitors (3 more) results in 4 monitored tables.</p></dd><dt class="border-0 ps-0" id=quality-monitoring-do-i-have-to-monitor-every-table-in-my-warehouse><a class=text-black href=#quality-monitoring-do-i-have-to-monitor-every-table-in-my-warehouse>Do I have to monitor every table in my warehouse?</a></dt><dd class=ps-0>No, you can monitor as many or as few tables as you&rsquo;d like. Most customers start with a critical subset, like business-facing tables and key dependencies, and expand coverage over time.</dd><dt class="border-0 ps-0" id=quality-monitoring-is-there-a-minimum-number-of-monitored-tables-or-can-i-start-with-1><a class=text-black href=#quality-monitoring-is-there-a-minimum-number-of-monitored-tables-or-can-i-start-with-1>Is there a minimum number of monitored tables or can I start with 1?</a></dt><dd class=ps-0>There is no minimum, and you can start with one monitored table.</dd><dt class="border-0 ps-0" id=quality-monitoring-what-if-the-number-of-monitored-tables-fluctuates-throughout-the-month><a class=text-black href=#quality-monitoring-what-if-the-number-of-monitored-tables-fluctuates-throughout-the-month>What if the number of monitored tables fluctuates throughout the month?</a></dt><dd class=ps-0>Datadog measures the number of monitored tables by hour, then charges based on the average number of monitored tables over the full month.</dd><dt class="border-0 ps-0" id=quality-monitoring-what-if-i-have-a-group-by-monitor-on-a-table-with-100-monitored-groups><a class=text-black href=#quality-monitoring-what-if-i-have-a-group-by-monitor-on-a-table-with-100-monitored-groups>What if I have a group by monitor on a table with 100 monitored groups?</a></dt><dd class=ps-0>You are charged for one monitored table, even if a group-by monitor evaluates many groups on that table.</dd><dt class="border-0 ps-0" id=quality-monitoring-are-lineage-and-metadata-visibility-billed-separately><a class=text-black href=#quality-monitoring-are-lineage-and-metadata-visibility-billed-separately>Are lineage and metadata visibility billed separately?</a></dt><dd class=ps-0>No, lineage, schema, and metadata syncing is included at no additional charge. You are only billed for monitored tables and any Jobs Monitoring usage.</dd><dt class="border-0 ps-0" id=quality-monitoring-what-if-i-connect-more-integrations><a class=text-black href=#quality-monitoring-what-if-i-connect-more-integrations>What if I connect more integrations?</a></dt><dd class=ps-0>You can connect as many integrations as you&rsquo;d like. You will only be charged for the number of tables you monitor, along with any charges from Jobs Monitoring.</dd><dt class="border-0 ps-0" id=quality-monitoring-does-column-level-lineage-only-apply-for-monitored-tables><a class=text-black href=#quality-monitoring-does-column-level-lineage-only-apply-for-monitored-tables>Does column-level lineage only apply for monitored tables?</a></dt><dd class=ps-0>No, Datadog can sync all tables it has permission to access, so you can view column-level lineage even for tables you are not monitoring.</dd><dt class="border-0 ps-0" id=quality-monitoring-what-if-i-start-monitoring-jobs><a class=text-black href=#quality-monitoring-what-if-i-start-monitoring-jobs>What if I start monitoring jobs?</a></dt><dd class=ps-0>When you enable Jobs Monitoring, it is billed separately from monitored tables based on the host hours or job hours Datadog observes. This usage is independent of how many data integrations you connect.</dd><dt class="border-0 ps-0" id=quality-monitoring-will-monitoring-impact-my-warehouse-performance-or-costs><a class=text-black href=#quality-monitoring-will-monitoring-impact-my-warehouse-performance-or-costs>Will monitoring impact my warehouse performance or costs?</a></dt><dd class=ps-0>Datadog minimizes overhead by using system metadata instead of table scans whenever possible, and you can control which monitors run and how often they run to manage performance and cost impact.</dd><dt class="border-0 ps-0" id=quality-monitoring-is-this-available-in-all-regions><a class=text-black href=#quality-monitoring-is-this-available-in-all-regions>Is this available in all regions?</a></dt><dd class=ps-0>Quality Monitoring is available in all our AP, EU, and US data centers. It is currently not available in GovCloud (US).</dd><div class=row-full></div></div></div></div><div class="col-lg-9 content-section product-83" x-data="{
                            selected_category: '',
                            categories: [
                                
                                    
                                        'static--runtime-code-security',
                                    
                                        'static-code-security',
                                    
                                        'runtime-code-security',
                                    
                                
                            ]
                        }" x-init="
                            URLParams = new URLSearchParams(window.location.search)
                            let convertToSelectedCategory = function(category) {
                            if (!category) return

                                category = category.replace(/--/g, ' & ')
                                category = category.replace(/-/g, ' ')
                                category = category.toUpperCase()
                                return category
                            }
                            if (URLParams.get('tab') && categories.includes(URLParams.get('tab'))) {
                                selected_category = convertToSelectedCategory(URLParams.get('tab'))
                            } else {
                                selected_category = convertToSelectedCategory(categories[0])
                            }
                        " :class="product == 'code-security' ? 'active' : ''"><div class=multi-plan data-plan-count=7><h2 class=text-md-center id=code-security><a class=text-black>Code Security</a></h2><h3 class="text-md-center mb-2 mb-md-4 mt-1">Fix critical code and library vulnerabilities from development to production</h3><div class="row mb-2 d-flex justify-content-between gx-5" x-data="{
                                    planOpen: false,
                                    planNameHeight: 0,
                                    setPlanNameHeight() {
                                        if (window.innerWidth > 575) {
                                            var maxHeight = 0;
                                            var planNames = this.$el.querySelectorAll('.plan p.plan-name')

                                            // Reset all heights and padding
                                            planNames.forEach(function(element) {
                                                element.style.height = ''
                                                element.style.paddingTop = ''
                                            })

                                            // Force reflow
                                            void planNames[0].offsetHeight

                                            // Group cards by visual row (based on Y position)
                                            var rowGroups = {};
                                            planNames.forEach(function(element) {
                                                var plan = element.closest('.plan')
                                                if (plan && window.getComputedStyle(plan).display !== 'none') {
                                                    var top = plan.getBoundingClientRect().top;
                                                    var rowKey = Math.round(top);
                                                    if (!rowGroups[rowKey]) rowGroups[rowKey] = [];
                                                    rowGroups[rowKey].push(element);
                                                }
                                            })

                                            // Process each visual row separately
                                            Object.keys(rowGroups).forEach(function(rowKey) {
                                                var visibleElements = rowGroups[rowKey];
                                                var maxTextHeight = 0;
                                                var addonBadgeHeight = 0;
                                                var addonElements = [];

                                                // Hide badges in this row
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        addonElements.push(element);
                                                        var style = document.createElement('style');
                                                        style.id = 'temp-hide-badge-' + Math.random();
                                                        element._tempStyleId = style.id;
                                                        style.textContent = '.plan-name.addon:before { display: none !important; }';
                                                        document.head.appendChild(style);
                                                    }
                                                })

                                                void planNames[0].offsetHeight;

                                                // Measure text heights
                                                visibleElements.forEach(function(element) {
                                                    maxTextHeight = element.offsetHeight > maxTextHeight ? element.offsetHeight : maxTextHeight;
                                                })

                                                var minAddonTextHeight = maxTextHeight;
                                                addonElements.forEach(function(element) {
                                                    minAddonTextHeight = element.offsetHeight < minAddonTextHeight ? element.offsetHeight : minAddonTextHeight;
                                                })

                                                // Show badges
                                                addonElements.forEach(function(element) {
                                                    var style = document.getElementById(element._tempStyleId);
                                                    if (style) style.remove();
                                                })

                                                void planNames[0].offsetHeight;

                                                // Find shortest addon with badge
                                                var minAddonFullHeight = 999999;
                                                visibleElements.forEach(function(element) {
                                                    if (element.classList.contains('addon')) {
                                                        minAddonFullHeight = element.offsetHeight < minAddonFullHeight ? element.offsetHeight : minAddonFullHeight;
                                                    }
                                                })

                                                // Calculate badge height
                                                if (minAddonFullHeight < 999999 && minAddonTextHeight > 0) {
                                                    addonBadgeHeight = minAddonFullHeight - minAddonTextHeight;
                                                }

                                                // Add padding if needed
                                                if (addonBadgeHeight > 0 && minAddonFullHeight > maxTextHeight) {
                                                    visibleElements.forEach(function(element) {
                                                        if (!element.classList.contains('addon')) {
                                                            element.style.paddingTop = addonBadgeHeight + 'px';
                                                        }
                                                    })
                                                    void planNames[0].offsetHeight;
                                                }

                                                // Measure and apply max height for THIS row only
                                                var rowMaxHeight = 0;
                                                visibleElements.forEach(function(element) {
                                                    rowMaxHeight = element.offsetHeight > rowMaxHeight ? element.offsetHeight : rowMaxHeight;
                                                })

                                                // Apply the height to cards in this row
                                                visibleElements.forEach(function(element) {
                                                    element.style.height = rowMaxHeight + 'px';
                                                })

                                                // Track overall max for return value
                                                maxHeight = rowMaxHeight > maxHeight ? rowMaxHeight : maxHeight;
                                            })

                                            return maxHeight
                                        }
                                    }
                                }" x-init="
                                    $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                    
                                        $watch('product, selected_category', () => {
                                            $nextTick(() => { planNameHeight = setPlanNameHeight() })
                                        })
                                    " :class="selected_category == 'AWS LAMBDA' || selected_category == 'AWS' ? 'addon-group': ''"><span class="plan-product-dropdown-wrapper d-flex justify-content-lg-center mb-4"><button id=plan-product-dropdown class="pricing-product-dropdown plan-dropdown ms-0" type=button :aria-expanded=planOpen @click="planOpen = ! planOpen" :data-dd-action-name="planOpen ? 'overview: dropdown: close' : 'overview: dropdown: open'">
<span class="menu-text plan-menu-text text-uppercase" x-text=selected_category></span></button><div class="dropdown-options-container plan-options z-3 mt-4" aria-label=plan-product-dropdown style=display:none :aria-expanded=planOpen x-show=planOpen @click.outside="planOpen = false"><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Static & Runtime Code Security" @click.prevent="
                                                        updateQueryParam('tab', 'static--runtime-code-security')
                                                        selected_category = 'STATIC & RUNTIME CODE SECURITY'; 
                                                        planOpen = false;
                                                    " :class="'STATIC & RUNTIME CODE SECURITY' == selected_category ? 'active' : ''">Static & Runtime Code Security
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Static Code Security" @click.prevent="
                                                        updateQueryParam('tab', 'static-code-security')
                                                        selected_category = 'STATIC CODE SECURITY'; 
                                                        planOpen = false;
                                                    " :class="'STATIC CODE SECURITY' == selected_category ? 'active' : ''">Static Code Security
</span><span class="d-flex text-uppercase plan-option" data-dd-action-name="overview: dropdown: Runtime Code Security" @click.prevent="
                                                        updateQueryParam('tab', 'runtime-code-security')
                                                        selected_category = 'RUNTIME CODE SECURITY'; 
                                                        planOpen = false;
                                                    " :class="'RUNTIME CODE SECURITY' == selected_category ? 'active' : ''">Runtime Code Security</span></div></span><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['STATIC CODE SECURITY',].includes(selected_category) && pricing[region]['CA-SAST'] && product === 'code-security'
            ? 'd-flex group'
            : ['STATIC CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Static Code Analysis (SAST)">Static Code Analysis (SAST)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CA-SAST'] ? pricing[region]['CA-SAST'].annual_cost : ''">25</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure 1st party code in development</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Integrate security directly into developers’ IDEs for real-time feedback</p></li><li><p class="small fw-semibold">Integrate SAST into CI/CD pipeline for automated, continuous security</p></li><li><p class="small fw-semibold">Apply suggested code fixes from inline pull request comments during code review</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CA-SAST'] ? pricing[region]['CA-SAST'].on_demand_cost : ''">36</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Static Code Analysis (SAST)" href=# class="js-cta-PricingCTA pricing-bg-color-1 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['STATIC CODE SECURITY',].includes(selected_category) && pricing[region]['CA-STATIC-SCA'] && product === 'code-security'
            ? 'd-flex group'
            : ['STATIC CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Software Composition Analysis (Static SCA)">Software Composition Analysis (Static SCA)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CA-STATIC-SCA'] ? pricing[region]['CA-STATIC-SCA'].annual_cost : ''">25</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure 3rd party code in development</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Identify vulnerabilities in open-source libraries and dependencies directly within the development pipeline before deployment</p></li><li><p class="small fw-semibold">Automatically generate a Software Bill of Materials (SBOM) to maintain visibility into all open-source dependencies</p></li><li><p class="small fw-semibold">Ensure compliance by detecting and analyzing open-source licenses used in your applications</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CA-STATIC-SCA'] ? pricing[region]['CA-STATIC-SCA'].on_demand_cost : ''">36</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Software Composition Analysis (Static SCA)" href=# class="js-cta-PricingCTA pricing-bg-color-2 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['STATIC CODE SECURITY',].includes(selected_category) && pricing[region]['IAC-SECURITY'] && product === 'code-security'
            ? 'd-flex group'
            : ['STATIC CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Infrastructure-as-Code (IaC) Security">Infrastructure-as-Code (IaC) Security</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['IAC-SECURITY'] ? pricing[region]['IAC-SECURITY'].annual_cost : ''">15</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure your infrastructure configurations</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Scan Terraform, CloudFormation, and Kubernetes configurations</p></li><li><p class="small fw-semibold">Detect misconfigurations and security vulnerabilities</p></li><li><p class="small fw-semibold">Policy-as-code enforcement for compliance requirements</p></li><li><p class="small fw-semibold">Integration with CI/CD pipelines for shift-left security</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['IAC-SECURITY'] ? pricing[region]['IAC-SECURITY'].on_demand_cost : ''">22</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Infrastructure-as-Code (IaC) Security" href=# class="js-cta-PricingCTA pricing-bg-color-3 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['STATIC CODE SECURITY',].includes(selected_category) && pricing[region]['CODE-SECURITY-SECRETS-COMMITTER'] && product === 'code-security'
            ? 'd-flex group'
            : ['STATIC CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Secret Scanning">Secret Scanning</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CODE-SECURITY-SECRETS-COMMITTER'] ? pricing[region]['CODE-SECURITY-SECRETS-COMMITTER'].annual_cost : ''">15</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Detect and remediate exposed secrets</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Scan repositories for exposed API keys, passwords, and credentials</p></li><li><p class="small fw-semibold">Real-time detection of secrets in commit and pull requests</p></li><li><p class="small fw-semibold">Verify active secrets through third-party validation</p></li><li><p class="small fw-semibold">Automate alerting and triage to accelerate incident response</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CODE-SECURITY-SECRETS-COMMITTER'] ? pricing[region]['CODE-SECURITY-SECRETS-COMMITTER'].on_demand_cost : ''">22</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Secret Scanning" href=# class="js-cta-PricingCTA pricing-bg-color-4 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['RUNTIME CODE SECURITY',].includes(selected_category) && pricing[region]['CODE-SECURITY-HOST'] && product === 'code-security'
            ? 'd-flex group'
            : ['RUNTIME CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Runtime Code Analysis (IAST)">Runtime Code Analysis (IAST)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CODE-SECURITY-HOST'] ? pricing[region]['CODE-SECURITY-HOST'].annual_cost : ''">20</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure 1st party code at runtime</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find vulnerabilities in the code of applications in production in real time</p></li><li><p class="small fw-semibold">Prioritize the remediation of the highest-risks vulnerabilities with real-time observability context</p></li><li><p class="small fw-semibold">Quickly find the source of any vulnerability with code snippets and speed up the remediation process</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CODE-SECURITY-HOST'] ? pricing[region]['CODE-SECURITY-HOST'].on_demand_cost : ''">29</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Runtime Code Analysis (IAST)" href=# class="js-cta-PricingCTA pricing-bg-color-5 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-6" x-data="{custom: false}" :class="['RUNTIME CODE SECURITY',].includes(selected_category) && pricing[region]['APPSEC-VM-OSS-HOSTS'] && product === 'code-security'
            ? 'd-flex group'
            : ['RUNTIME CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Software Composition Analysis (Runtime SCA)">Software Composition Analysis (Runtime SCA)</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['APPSEC-VM-OSS-HOSTS'] ? pricing[region]['APPSEC-VM-OSS-HOSTS'].annual_cost : ''">10</span><div class=price-helper-wrapper><span class="price-helper small">Per host,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p>Secure 3rd party code at runtime</p><ul class="dashed mb-1 align-self-center" style=line-height:1><li><p class="small fw-semibold">Find vulnerabilities in open source libraries and their dependencies in production in real-time</p></li><li><p class="small fw-semibold">Prioritize the remediation of the highest-risk vulnerabilities with real-time observability context</p></li><li><p class="small fw-semibold">Reduce mean-time-to-remediate with actionable remediation guidance</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['APPSEC-VM-OSS-HOSTS'] ? pricing[region]['APPSEC-VM-OSS-HOSTS'].on_demand_cost : ''">15</span> on-demand</p><div class="d-flex flex-column align-items-center w-100 align-self-end"><a data-dd-action-name="card: button: start free trial: Software Composition Analysis (Runtime SCA)" href=# class="js-cta-PricingCTA pricing-bg-color-6 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div><div class="plan
position-relative
multi-plan
flex-sm-column flex-md-row plan
col-md-12" x-data="{custom: false}" :class="['STATIC & RUNTIME CODE SECURITY',].includes(selected_category) && pricing[region]['CA-COMBO-COMMITTERS'] && product === 'code-security'
            ? 'd-flex group'
            : ['STATIC & RUNTIME CODE SECURITY',].includes(selected_category) && product === 'code-security'
            ? `d-flex ${region}-pricing-disabled group`
            : 'd-none'"><div class="plan-inner pricing-border-primary
d-flex
flex-column h-100
border-top pt-1"><p class="fw-semibold font-24-28 text-center plan-name d-flex flex-column align-items-center justify-content-end
justify-content-start flex-column" data-name="Code Security">Code Security</p><hr class="mb-1 mb-md-2 w-100 border-gray"><p class="text-uppercase text-center small fw-semibold">Starting At</p><div class="text-center price price-container" x-show="! custom"><sup>$</sup>
<span class="price-amount js-price-amount" x-text="pricing[region]['CA-COMBO-COMMITTERS'] ? pricing[region]['CA-COMBO-COMMITTERS'].annual_cost : ''">40</span><div class=price-helper-wrapper><span class="price-helper small">Per committer,<br>per month*</span></div></div><hr class="w-100 mt-1 mt-md-2 border-gray"><p class="align-self-center col-md-6">Secure your custom code and software supply chain</p><ul class="dashed mb-1 align-self-center col-md-6" style=line-height:1><li><p class="small fw-semibold">Secure and maintain custom code and open source libraries in your repositories, along with IDE and CI/CD integrations</p></li><li><p class="small fw-semibold">Prioritize fixes with runtime context for both code and library vulnerabilities</p></li><li><p class="small fw-semibold">Manage and track remediation of findings in one place</p></li></ul><p class="mt-0 mt-md-auto mb-2 mb-md-0 small price-fine-print text-md-center" :class="custom ? 'opacity-0' : ''">*Billed annually or $<span class=js-custom-price-on-demand x-text="pricing[region]['CA-COMBO-COMMITTERS'] ? pricing[region]['CA-COMBO-COMMITTERS'].on_demand_cost : ''">57.60</span> on-demand</p><div class="d-flex flex-column align-items-center w-50 align-self-center"><a data-dd-action-name="card: button: start free trial: Code Security" href=# class="js-cta-PricingCTA pricing-bg-color-7 sign-up-trigger btn cta-btn w-100 mt-md-2 mb-md-2" x-show="! custom">Start Free Trial</a></div></div></div></div></div><hr class="mb-4 mt-0 d-none d-md-block border-black"><div class="flex-row w-100"><div class="col-12 text-center pe-0"><p>Multi-Year/Volume discounts available</p><a data-dd-action-name="callout: link: contact us" class="js-modal-demo cursor-pointer d-block text-uppercase fw-semibold text-underline small" style=margin-left:auto;margin-right:auto;width:max-content>Contact Us</a></div></div><div class="row my-4"><div class="col-12 text-center"><h3>Features</h3></div></div><div class="d-none d-md-block mb-4 mt-0 w-100 border-top border-primary"></div><div class="row mb-4 features"><div class=col-12><hr class="border-none mt-0"><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Static Code Analysis (SAST)</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Static SCA</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Code Security</h4></div><p class="fw-semibold small text-start text-uppercase">Static Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Integrate security directly into developers’ IDEs for real-time feedback</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Find vulnerabilities in your first-party code early by <b>scanning repositories</b></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small><b>Integrate into CI/CD pipelines</b> for automated and continuous security ensuring early vulnerability detection in the development process</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small><b>Scan open source libraries</b> imported into repositories for known vulnerabilities</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Suggested Remediation with workflows to appropriate owners</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div><div class=row><div class=col-3></div><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Runtime Code Analysis (IAST)</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Runtime SCA</h4><h4 class="col-3 text-center align-top text-capitalize small fw-semibold">Code Security</h4></div><p class="fw-semibold small text-start text-uppercase">Runtime Features</p><hr class=border-gray-light><div class="row mb-4"><div class=col-12><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Integrate security directly into developers’ IDEs for real-time feedback</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Find vulnerabilities in <b>first party code</b> while your services are <b>running in production</b></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1"><div class=col-3 style="padding:0 6px"><p class=small>Find vulnerabilities in <b>third party code (open source libraries)</b> while your services are <b>running in production</b></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div><div class="row mx-0 align-items-center py-1 bg-gray-lighter"><div class=col-3 style="padding:0 6px"><p class=small>Suggested Remediation with workflows to appropriate owners</p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div><div class=col-3 style="padding:0 6px"><p class="text-center small"><svg class='<nil>' width="25px" height="25px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/check </title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#000000" fill-rule="nonzero" points="18.0661855 34.5256844 40.2927965 12.29299 41.7072035 13.70701 18.0662453 37.3544387 6.29282638 25.5787938 7.70717362 24.1647139"></polygon>
    </g>
</svg></p></div></div></div></div></div></div><div class="row mb-7"><div class="col-12 text-center"><h3>Support Plans & Post Sales Services</h3><p class="my-1 my-sm-2 my-md-3">From basic plans to bespoke offerings, Datadog offers the right level of support & services for any organization.</p><div class="d-flex flex-column flex-sm-row justify-content-center row-gap-1 column-gap-5"><a data-dd-action-name="callout: link: support plans" href=https://www.datadoghq.com/support-services/plans/ class="text-underline small fw-semibold text-uppercase">Support plans</a>
<a data-dd-action-name="callout: link: services enablement" href=https://www.datadoghq.com/support-services/ class="text-underline small fw-semibold text-uppercase mt-0">Services & enablement</a></div></div></div><div class="common-questions row" x-data="{ 
                                faqOpen: false,
                                scrollToFaqs() {
                                    setTimeout(() => {
                                        const selectContainer = document.querySelector('.select-container');
                                        const activePlan = document.querySelector('.content-section.active');
                                        const commonQuestions = activePlan.querySelector('.common-questions');
                                        y = selectContainer.offsetHeight - commonQuestions.offsetHeight;
                                        window.scrollTo({top: y, behavior: 'smooth'});
                                    }, 200);
                                } 
                            }"><div class="col-12 pt-4 pt-md-6 position-relative"><h3 class="text-lg-center common-question-header mb-2" id=code-security-common-questions><a class=text-black href=#code-security-common-questions>Common Questions</a></h3><hr class="border-black mt-0 mb-2"><dt class="border-0 ps-0" id=code-security-what-is-included-in-datadog-code-security><a class=text-black href=#code-security-what-is-included-in-datadog-code-security>What is included in Datadog Code Security?</a></dt><dd class=ps-0>Datadog Code Security includes four key components; Datadog Static Code Analysis (SAST), Datadog Runtime Code Analysis (IAST), and Datadog Software Composition Analysis (both static SCA and runtime SCA). Learn more <a href=https://docs.datadoghq.com/security/code_security/>here</a>.</dd><dt class="border-0 ps-0" id=code-security-how-do-you-define-a-committer><a class=text-black href=#code-security-how-do-you-define-a-committer>How do you define a committer?</a></dt><dd class=ps-0>A committer means an active Git committer; they are identified through their Git author email address. A committer is counted towards billing if they commit at least 3 times in a given month.</dd><dt class="border-0 ps-0" id=code-security-for-runtime-sca-and-runtime-code-analysis-iast-purchased-as-part-of-code-security-how-many-hosts-can-i-run-on><a class=text-black href=#code-security-for-runtime-sca-and-runtime-code-analysis-iast-purchased-as-part-of-code-security-how-many-hosts-can-i-run-on>For Runtime SCA and Runtime Code Analysis (IAST) purchased as part of Code Security, how many hosts can I run on?</a></dt><dd class=ps-0>You can use Runtime SCA and Runtime Code Analysis (IAST) on any host with APM installed.</dd><dt class="border-0 ps-0" id=code-security-what-counts-as-a-billable-datadog-runtime-code-analysis-iast-or-runtime-sca-host><a class=text-black href=#code-security-what-counts-as-a-billable-datadog-runtime-code-analysis-iast-or-runtime-sca-host>What counts as a billable Datadog Runtime Code Analysis (IAST) or Runtime SCA host?</a></dt><dd class=ps-0>Similar to Datadog APM, a Datadog Runtime Code Analysis (IAST) host and a Runtime SCA host are hosts on which Datadog Runtime Code Analysis (IAST) and/or Runtime SCA are enabled and that are actively generating spans that are being submitted to the Datadog SaaS application.</dd><dt class="border-0 ps-0" id=code-security-what-kind-of-billing-plan-do-i-need-to-run-datadog-runtime-code-analysis-iast-and-runtime-sca><a class=text-black href=#code-security-what-kind-of-billing-plan-do-i-need-to-run-datadog-runtime-code-analysis-iast-and-runtime-sca>What kind of billing plan do I need to run Datadog Runtime Code Analysis (IAST) and Runtime SCA?</a></dt><dd class=ps-0>Datadog Runtime Code Analysis (IAST) and Runtime SCA are currently only available to customers of Datadog Application Performance Monitoring (APM).</dd><dt class="border-0 ps-0" id=code-security-does-runtime-sca-support-aws-fargate-serverless-containers-and-how-is-it-charged><a class=text-black href=#code-security-does-runtime-sca-support-aws-fargate-serverless-containers-and-how-is-it-charged>Does Runtime SCA support AWS Fargate (serverless containers) and how is it charged?</a></dt><dd class=ps-0><p>Yes, AWS Fargate is supported by Runtime SCA. If Runtime SCA is purchased standalone, the AWS Fargate add-on must be purchased at $<span x-text="pricing[region]['APPSEC-FARGATE-SCA']? pricing[region]['APPSEC-FARGATE-SCA'].annual_cost : ''">1</span> per task, or $<span x-text="pricing[region]['APPSEC-FARGATE-SCA']? pricing[region]['APPSEC-FARGATE-SCA'].on_demand_cost : ''">1.40</span> on demand.</p><p>If Runtime SCA is purchased as part of Code Security, it can run on any AWS Fargate task that has APM installed.</p></dd><dt class="border-0 ps-0" id=code-security-what-languages-does-datadog-static-code-analysis-sast-support><a class=text-black href=#code-security-what-languages-does-datadog-static-code-analysis-sast-support>What languages does Datadog Static Code Analysis (SAST) support?</a></dt><dd class=ps-0>Java, .NET, Javascript, Typescript, Python, Go, PHP, Ruby, Kotlin, and more. Learn more about supported languages in our <a href=https://docs.datadoghq.com/security/code_security/static_analysis/#set-up-static-code-analysis>documentation</a>.</dd><dt class="border-0 ps-0" id=code-security-what-languages-does-datadog-software-composition-analysis-support><a class=text-black href=#code-security-what-languages-does-datadog-software-composition-analysis-support>What languages does Datadog Software Composition Analysis support?</a></dt><dd class=ps-0>Java, .NET, Node.js, Python, Go, PHP, and Ruby. Learn more about supported languages in our <a href=https://docs.datadoghq.com/security/code_security/software_composition_analysis/setup_static/>documentation</a>.</dd><dt class="border-0 ps-0" id=code-security-what-languages-does-datadog-runtime-code-analysis-iast-support><a class=text-black href=#code-security-what-languages-does-datadog-runtime-code-analysis-iast-support>What languages does Datadog Runtime Code Analysis (IAST) support?</a></dt><dd class=ps-0>Java, .NET, Node.JS, and Python. Learn more about supported languages in our <a href=https://docs.datadoghq.com/security/application_security/code_security/>documentation</a>.</dd><dt class="border-0 ps-0" id=code-security-does-datadog-include-static-code-analysis-sast-and-static-sca-in-one-offering><a class=text-black href=#code-security-does-datadog-include-static-code-analysis-sast-and-static-sca-in-one-offering>Does Datadog include Static Code Analysis (SAST) and Static SCA in one offering?</a></dt><dd class=ps-0>Yes, <a href=https://www.datadoghq.com/product/code-security/>Datadog Code Security</a> includes both Static Code Analysis (SAST) and Static SCA in a single offering, while still allowing each to be purchased separately. This unified approach simplifies code security across the entire Software Development Lifecycle, also incorporating capabilities for identifying vulnerabilities while services are running through its Runtime Code Analysis (IAST) and Runtime SCA components.</dd><dt class="border-0 ps-0" id=code-security-does-datadog-include-runtime-code-analysis-iast-and-runtime-sca-in-one-offering><a class=text-black href=#code-security-does-datadog-include-runtime-code-analysis-iast-and-runtime-sca-in-one-offering>Does Datadog include Runtime Code Analysis (IAST) and Runtime SCA in one offering?</a></dt><dd class=ps-0>Yes, <a href=https://www.datadoghq.com/product/code-security/>Datadog Code Security</a> includes both Runtime Code Analysis (IAST) and Runtime SCA in a single offering, while still allowing each to be purchased separately. This unified approach simplifies code security across the entire Software Development Lifecycle, also incorporating capabilities for scanning source code repositories through its SAST and Static SCA components.</dd><dt class="border-0 ps-0" id=code-security-how-is-the-code-security-bundle-billed-on-demand><a class=text-black href=#code-security-how-is-the-code-security-bundle-billed-on-demand>How is the Code Security Bundle billed on-demand?</a></dt><dd class=ps-0>The Code Security Bundle is only billed on-demand if you have overages on a contractual commitment, For example, if you have a commitment for 20 committers but usage reflects 25 committers, 5 extra committers will be billed at the on-demand bundle rate. If the Code Security Bundle is not on your contract, you will be billed the on-demand rate for each standalone product you have enabled. For example, if you don’t have the Code Security Bundle or any standalone product on your contract, but enable Static SCA, Static Code Analysis (SAST), Runtime Code Analysis (IAST), and Runtime SCA on-demand (all included in the bundle), you will be billed separately for each product at their respective on-demand rate.</dd><dt class="border-0 ps-0" id=code-security-how-does-datadog-runtime-code-analysis-iast-work><a class=text-black href=#code-security-how-does-datadog-runtime-code-analysis-iast-work>How does Datadog Runtime Code Analysis (IAST) work?</a></dt><dd class=ps-0>Datadog Runtime Code Analysis (IAST) uses instrumentation to analyze applications in their running state, monitoring requests and their interactions with each internal layer—operating similarly to Application Performance Monitoring (APM). This instrumentation-based approach is called Interactive Application Security Testing (IAST), which identifies code-level vulnerabilities in applications based solely on application traffic, and does not require any scans or security tests, ensuring that vulnerabilities are identified and addressed as the application runs. Learn more about Datadog Runtime Code Analysis (IAST) in our <a href=https://docs.datadoghq.com/security/application_security/code_security/>documentation</a>.</dd><dt class="border-0 ps-0" id=code-security-how-does-datadog-runtime-sca-work><a class=text-black href=#code-security-how-does-datadog-runtime-sca-work>How does Datadog Runtime SCA work?</a></dt><dd class=ps-0>When an APM-instrumented service starts, the tracer collects the list of libraries that the application is actively loading and reports the list of vulnerabilities associated with those libraries. Learn more about Runtime SCA in our <a href=https://docs.datadoghq.com/security/code_security/software_composition_analysis/>documentation</a>.</dd><dt class="border-0 ps-0" id=code-security-are-static-code-analysis-sast-runtime-code-analysis-iast-and-software-composition-analysis-runtime-and-static-sca-available-in-all-regions><a class=text-black href=#code-security-are-static-code-analysis-sast-runtime-code-analysis-iast-and-software-composition-analysis-runtime-and-static-sca-available-in-all-regions>Are Static Code Analysis (SAST), Runtime Code Analysis (IAST) and Software Composition Analysis (Runtime and Static SCA) available in all regions?</a></dt><dd class=ps-0>Yes, with the exception of the US1-Fed region.</dd><div class=row-full></div></div></div></div></div></main></div><div class="container-fluid w-100 bg-gray-lightest pb-4 pb-md-6"></div><div class=container-fluid data-nosnippet><div class="modal js-lets-talk-modal" tabindex=-1 role=dialog aria-hidden=true id=js-lets-talk-modal><div class="modal-dialog modal-dialog-centered modal-sm mx-auto my-0"><div class=modal-content><button aria-label=close type=button class=btn-close data-bs-dismiss=modal></button><div class=marketo-form-append></div></div></div></div></div><footer x-data="{
        openSection: 'resources',
        desktop: true,
        reactOnResize() {
            if (window.innerWidth >= 992) {
                this.desktop = true;
            } else {
                this.desktop = false;
            }
        }
    }" x-init=reactOnResize() @resize.window.throttle.200ms=reactOnResize() class="pt-3 pt-md-36 pt-lg-5 pb-3 pb-md-36 pb-lg-16"><div class="container pb-lg-3"><div class=row><div class="col-12 col-lg-3 order-0"><a href=# class="js-cta-FooterLeftCTA sign-up-trigger d-inline-flex justify-content-center align-items-center mb-2 mb-lg-4 p-0 btn btn-white btn-outline text-uppercase" data-event-category=Signup data-event-action="Step 1 Footer Initiated" data-event-label="{{ url path }}"><span>Free Trial</span></a><p class="fw-semibold text-center text-lg-start download-app mb-0 mt-0 pb-1">Download mobile app</p><div class="d-flex justify-content-center justify-content-lg-start align-items-lg-end"><a href=https://apps.apple.com/app/datadog/id1391380318 aria-label="Apple Store Link"><span class="me-1 d-inline-block d-lg-none"><svg class='<nil>' width="135" height="40" viewBox="0 0 135 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="134" height="39" rx="4.5" fill="#110617" stroke="#979797"/>
<path d="M27.8389 19.3013C27.8496 18.4666 28.072 17.6483 28.4851 16.9223C28.8983 16.1964 29.4889 15.5864 30.202 15.1492C29.749 14.5041 29.1514 13.9731 28.4566 13.5986C27.7619 13.224 26.9891 13.0162 26.1997 12.9916C24.5157 12.8153 22.8832 13.9964 22.0251 13.9964C21.1504 13.9964 19.8292 13.0091 18.4064 13.0383C17.4862 13.0679 16.5893 13.3348 15.8033 13.8128C15.0172 14.2909 14.3687 14.9638 13.921 15.7661C11.9815 19.1145 13.4282 24.0356 15.286 26.7422C16.2155 28.0676 17.3018 29.548 18.7232 29.4955C20.1142 29.438 20.6337 28.611 22.3127 28.611C23.9761 28.611 24.4635 29.4955 25.9138 29.4621C27.4063 29.438 28.3467 28.1309 29.2436 26.793C29.9115 25.8486 30.4254 24.8049 30.7663 23.7005C29.8992 23.3347 29.1592 22.7226 28.6386 21.9403C28.118 21.158 27.8399 20.2402 27.8389 19.3013Z" fill="white"/>
<path d="M25.0994 11.2113C25.9132 10.2371 26.3142 8.98494 26.2171 7.7207C24.9738 7.85092 23.8253 8.44348 23.0005 9.38031C22.5972 9.83798 22.2884 10.3704 22.0916 10.9472C21.8948 11.524 21.8139 12.1337 21.8536 12.7417C22.4754 12.7481 23.0907 12.6137 23.6529 12.3486C24.2151 12.0835 24.7097 11.6946 25.0994 11.2113Z" fill="white"/>
<path d="M49.4215 26.1397H44.6748L43.5349 29.4961H41.5244L46.0204 17.0781H48.1093L52.6052 29.4961H50.5604L49.4215 26.1397ZM45.1664 24.5908H48.929L47.0742 19.1436H47.0223L45.1664 24.5908Z" fill="white"/>
<path d="M62.315 24.9695C62.315 27.7829 60.8049 29.5905 58.5261 29.5905C57.9488 29.6207 57.3747 29.4881 56.8695 29.2079C56.3643 28.9278 55.9484 28.5114 55.6694 28.0065H55.6263V32.4909H53.7627V20.4421H55.5666V21.948H55.6009C55.8927 21.4455 56.3156 21.0313 56.8246 20.7495C57.3337 20.4676 57.9098 20.3287 58.4918 20.3474C60.796 20.3474 62.315 22.1638 62.315 24.9695ZM60.3995 24.9695C60.3995 23.1365 59.4495 21.9314 58.0002 21.9314C56.5763 21.9314 55.6185 23.1618 55.6185 24.9695C55.6185 26.7937 56.5763 28.0154 58.0002 28.0154C59.4495 28.0154 60.3995 26.8191 60.3995 24.9695Z" fill="white"/>
<path d="M72.3081 24.9694C72.3081 27.7829 70.7981 29.5905 68.5192 29.5905C67.942 29.6206 67.3678 29.488 66.8626 29.2079C66.3574 28.9278 65.9415 28.5114 65.6626 28.0065H65.6195V32.4909H63.7559V20.4421H65.5597V21.948H65.594C65.8858 21.4455 66.3087 21.0313 66.8177 20.7495C67.3268 20.4676 67.903 20.3287 68.4849 20.3474C70.7892 20.3474 72.3081 22.1638 72.3081 24.9694ZM70.3926 24.9694C70.3926 23.1364 69.4427 21.9314 67.9933 21.9314C66.5694 21.9314 65.6117 23.1618 65.6117 24.9694C65.6117 26.7937 66.5694 28.0153 67.9933 28.0153C69.4427 28.0153 70.3926 26.8191 70.3926 24.9694H70.3926Z" fill="white"/>
<path d="M78.9126 26.0362C79.0507 27.2676 80.2503 28.0762 81.8897 28.0762C83.4605 28.0762 84.5906 27.2676 84.5906 26.1572C84.5906 25.1934 83.909 24.6162 82.2951 24.2207L80.6812 23.833C78.3946 23.2822 77.333 22.2158 77.333 20.4854C77.333 18.3428 79.2054 16.8711 81.8642 16.8711C84.4956 16.8711 86.2995 18.3428 86.3602 20.4854H84.4789C84.3663 19.2461 83.339 18.4981 81.8378 18.4981C80.3365 18.4981 79.3092 19.2549 79.3092 20.3565C79.3092 21.2344 79.9653 21.751 81.5704 22.1465L82.9424 22.4824C85.4974 23.0849 86.559 24.1084 86.559 25.9248C86.559 28.248 84.7032 29.7031 81.7516 29.7031C78.9899 29.7031 77.1253 28.2822 77.0049 26.0361L78.9126 26.0362Z" fill="white"/>
<path d="M90.5802 18.2998V20.4424H92.3067V21.9141H90.5802V26.9053C90.5802 27.6807 90.9259 28.042 91.6849 28.042C91.8898 28.0384 92.0945 28.0241 92.2979 27.999V29.4619C91.9567 29.5255 91.6099 29.5543 91.2628 29.5478C89.4246 29.5478 88.7078 28.8593 88.7078 27.1035V21.9141H87.3877V20.4424H88.7078V18.2998H90.5802Z" fill="white"/>
<path d="M93.3066 24.9697C93.3066 22.1211 94.9891 20.3311 97.6126 20.3311C100.245 20.3311 101.92 22.1211 101.92 24.9697C101.92 27.8262 100.254 29.6084 97.6126 29.6084C94.9724 29.6084 93.3066 27.8262 93.3066 24.9697ZM100.021 24.9697C100.021 23.0156 99.1227 21.8623 97.6126 21.8623C96.1025 21.8623 95.2055 23.0244 95.2055 24.9697C95.2055 26.9316 96.1025 28.0762 97.6126 28.0762C99.1227 28.0762 100.021 26.9316 100.021 24.9697H100.021Z" fill="white"/>
<path d="M103.457 20.442H105.234V21.983H105.278C105.398 21.5017 105.681 21.0764 106.078 20.7785C106.476 20.4806 106.964 20.3284 107.461 20.3473C107.676 20.3465 107.89 20.3698 108.1 20.4166V22.1549C107.829 22.0723 107.546 22.0343 107.263 22.0426C106.992 22.0316 106.722 22.0792 106.471 22.1821C106.221 22.285 105.996 22.4408 105.811 22.6386C105.627 22.8365 105.487 23.0719 105.403 23.3286C105.318 23.5852 105.29 23.8571 105.321 24.1256V29.4957H103.457L103.457 20.442Z" fill="white"/>
<path d="M116.692 26.8369C116.441 28.4805 114.836 29.6084 112.782 29.6084C110.141 29.6084 108.502 27.8437 108.502 25.0127C108.502 22.1729 110.15 20.3311 112.704 20.3311C115.216 20.3311 116.796 22.0518 116.796 24.7969V25.4336H110.383V25.5459C110.354 25.8791 110.395 26.2148 110.506 26.5306C110.616 26.8464 110.793 27.1352 111.024 27.3778C111.255 27.6203 111.535 27.8111 111.846 27.9374C112.156 28.0637 112.49 28.1226 112.826 28.1103C113.266 28.1515 113.708 28.0498 114.086 27.8203C114.463 27.5909 114.757 27.246 114.922 26.8369L116.692 26.8369ZM110.392 24.1348H114.931C114.948 23.8352 114.902 23.5354 114.797 23.2541C114.692 22.9729 114.53 22.7164 114.321 22.5006C114.112 22.2849 113.86 22.1145 113.582 22.0003C113.304 21.8861 113.005 21.8305 112.704 21.8369C112.401 21.8351 112.1 21.8933 111.819 22.008C111.538 22.1227 111.283 22.2918 111.068 22.5054C110.853 22.7191 110.683 22.973 110.567 23.2527C110.451 23.5323 110.391 23.8321 110.392 24.1348V24.1348Z" fill="white"/>
<path d="M44.9328 8.73138C45.3235 8.70342 45.7156 8.76228 46.0807 8.90371C46.4458 9.04515 46.7749 9.26563 47.0443 9.54925C47.3136 9.83288 47.5165 10.1726 47.6382 10.5438C47.76 10.9151 47.7976 11.3087 47.7483 11.6962C47.7483 13.6025 46.7151 14.6982 44.9328 14.6982H42.7715V8.73138H44.9328ZM43.7008 13.8544H44.829C45.1082 13.871 45.3876 13.8254 45.6468 13.7208C45.9061 13.6161 46.1387 13.4552 46.3277 13.2496C46.5168 13.0441 46.6574 12.7991 46.7395 12.5324C46.8216 12.2658 46.8431 11.9843 46.8023 11.7084C46.8401 11.4335 46.8165 11.1538 46.7331 10.8891C46.6498 10.6244 46.5088 10.3814 46.3202 10.1775C46.1316 9.97358 45.9001 9.81378 45.6423 9.70954C45.3845 9.6053 45.1068 9.55922 44.829 9.57459H43.7008V13.8544Z" fill="white"/>
<path d="M48.7982 12.4448C48.7698 12.1489 48.8037 11.8503 48.8978 11.5682C48.9919 11.2862 49.1441 11.0268 49.3446 10.8068C49.5451 10.5868 49.7895 10.4111 50.0621 10.2908C50.3347 10.1705 50.6296 10.1084 50.9277 10.1084C51.2258 10.1084 51.5206 10.1705 51.7932 10.2908C52.0658 10.4111 52.3102 10.5868 52.5107 10.8068C52.7112 11.0268 52.8634 11.2862 52.9575 11.5682C53.0516 11.8503 53.0855 12.1489 53.0572 12.4448C53.0861 12.741 53.0525 13.04 52.9587 13.3225C52.8648 13.605 52.7127 13.8648 52.5122 14.0853C52.3116 14.3057 52.067 14.4818 51.7942 14.6023C51.5213 14.7229 51.2261 14.7851 50.9277 14.7851C50.6292 14.7851 50.334 14.7229 50.0612 14.6023C49.7883 14.4818 49.5437 14.3057 49.3431 14.0853C49.1426 13.8648 48.9905 13.605 48.8966 13.3225C48.8028 13.04 48.7692 12.741 48.7982 12.4448ZM52.1405 12.4448C52.1405 11.4687 51.7008 10.8979 50.9291 10.8979C50.1545 10.8979 49.7187 11.4687 49.7187 12.4448C49.7187 13.4287 50.1545 13.9951 50.9291 13.9951C51.7008 13.9951 52.1405 13.4248 52.1405 12.4448H52.1405Z" fill="white"/>
<path d="M58.7181 14.6982H57.7937L56.8604 11.3818H56.7899L55.8605 14.6982H54.9449L53.7002 10.1953H54.6041L55.413 13.6313H55.4796L56.408 10.1953H57.2629L58.1913 13.6313H58.2618L59.0668 10.1953H59.9579L58.7181 14.6982Z" fill="white"/>
<path d="M61.0049 10.1949H61.8628V10.9102H61.9293C62.0423 10.6533 62.2329 10.4379 62.4744 10.2941C62.716 10.1503 62.9965 10.0852 63.2769 10.1079C63.4966 10.0915 63.7172 10.1245 63.9224 10.2046C64.1275 10.2847 64.312 10.4098 64.4621 10.5707C64.6122 10.7315 64.7241 10.924 64.7895 11.1338C64.8549 11.3436 64.8721 11.5654 64.8398 11.7827V14.6977H63.9487V12.0059C63.9487 11.2823 63.6333 10.9224 62.9743 10.9224C62.8251 10.9155 62.6762 10.9408 62.5377 10.9966C62.3993 11.0525 62.2746 11.1375 62.1722 11.2459C62.0698 11.3543 61.9921 11.4834 61.9444 11.6246C61.8967 11.7657 61.8802 11.9154 61.896 12.0635V14.6978H61.0049L61.0049 10.1949Z" fill="white"/>
<path d="M66.2598 8.4375H67.1509V14.6982H66.2598V8.4375Z" fill="white"/>
<path d="M68.3899 12.4449C68.3616 12.1489 68.3955 11.8503 68.4897 11.5683C68.5838 11.2862 68.736 11.0268 68.9365 10.8068C69.137 10.5869 69.3815 10.4111 69.6541 10.2908C69.9267 10.1705 70.2216 10.1084 70.5197 10.1084C70.8178 10.1084 71.1126 10.1705 71.3853 10.2908C71.6579 10.4111 71.9023 10.5869 72.1028 10.8068C72.3034 11.0268 72.4556 11.2862 72.5497 11.5683C72.6438 11.8503 72.6778 12.1489 72.6494 12.4449C72.6783 12.7411 72.6447 13.0401 72.5508 13.3226C72.457 13.6051 72.3048 13.8649 72.1043 14.0853C71.9037 14.3058 71.6591 14.4819 71.3862 14.6024C71.1133 14.7229 70.8181 14.7852 70.5197 14.7852C70.2212 14.7852 69.926 14.7229 69.6531 14.6024C69.3802 14.4819 69.1356 14.3058 68.9351 14.0853C68.7345 13.8649 68.5824 13.6051 68.4885 13.3226C68.3946 13.0401 68.361 12.7411 68.3899 12.4449ZM71.7323 12.4449C71.7323 11.4688 71.2926 10.898 70.5209 10.898C69.7463 10.898 69.3105 11.4688 69.3105 12.4449C69.3105 13.4288 69.7463 13.9952 70.5209 13.9952C71.2926 13.9952 71.7323 13.4248 71.7323 12.4449H71.7323Z" fill="white"/>
<path d="M73.5879 13.4248C73.5879 12.6142 74.1931 12.147 75.2674 12.0806L76.4906 12.0102V11.6216C76.4906 11.146 76.1752 10.8774 75.5661 10.8774C75.0686 10.8774 74.7239 11.0596 74.625 11.3779H73.7622C73.8533 10.6045 74.5829 10.1084 75.6072 10.1084C76.7393 10.1084 77.3778 10.6704 77.3778 11.6216V14.6982H76.5199V14.0654H76.4494C76.3063 14.2924 76.1053 14.4775 75.867 14.6017C75.6288 14.7259 75.3617 14.7848 75.0931 14.7724C74.9035 14.7921 74.7119 14.7719 74.5307 14.7132C74.3494 14.6545 74.1825 14.5586 74.0407 14.4316C73.8988 14.3047 73.7853 14.1495 73.7073 13.9761C73.6293 13.8026 73.5886 13.6149 73.5879 13.4248ZM76.4906 13.04V12.6636L75.3879 12.7339C74.766 12.7754 74.4839 12.9863 74.4839 13.3833C74.4839 13.7886 74.8365 14.0244 75.3213 14.0244C75.4633 14.0387 75.6068 14.0244 75.7432 13.9823C75.8796 13.9403 76.0061 13.8712 76.1152 13.7794C76.2243 13.6876 76.3137 13.5748 76.3782 13.4477C76.4427 13.3207 76.4809 13.1821 76.4906 13.04Z" fill="white"/>
<path d="M78.5488 12.4448C78.5488 11.022 79.2823 10.1206 80.4232 10.1206C80.7054 10.1077 80.9855 10.1751 81.2307 10.315C81.4759 10.4548 81.6761 10.6615 81.808 10.9106H81.8746V8.4375H82.7657V14.6982H81.9118V13.9868H81.8413C81.6993 14.2343 81.4921 14.4383 81.2421 14.5768C80.9922 14.7153 80.709 14.783 80.4232 14.7724C79.2745 14.7725 78.5488 13.8711 78.5488 12.4448ZM79.4694 12.4448C79.4694 13.3999 79.9209 13.9746 80.6759 13.9746C81.427 13.9746 81.8912 13.3916 81.8912 12.4487C81.8912 11.5103 81.4221 10.919 80.6759 10.919C79.9257 10.919 79.4694 11.4976 79.4694 12.4448H79.4694Z" fill="white"/>
<path d="M86.4525 12.4448C86.4241 12.1489 86.458 11.8503 86.5521 11.5682C86.6462 11.2862 86.7984 11.0268 86.9989 10.8068C87.1994 10.5868 87.4438 10.4111 87.7164 10.2908C87.989 10.1705 88.2838 10.1084 88.582 10.1084C88.8801 10.1084 89.1749 10.1705 89.4475 10.2908C89.7201 10.4111 89.9645 10.5868 90.165 10.8068C90.3655 11.0268 90.5177 11.2862 90.6118 11.5682C90.7059 11.8503 90.7398 12.1489 90.7114 12.4448C90.7404 12.741 90.7068 13.04 90.613 13.3225C90.5191 13.605 90.367 13.8648 90.1665 14.0853C89.9659 14.3057 89.7213 14.4818 89.4485 14.6023C89.1756 14.7229 88.8804 14.7851 88.582 14.7851C88.2835 14.7851 87.9883 14.7229 87.7154 14.6023C87.4426 14.4818 87.198 14.3057 86.9974 14.0853C86.7969 13.8648 86.6448 13.605 86.5509 13.3225C86.4571 13.04 86.4235 12.741 86.4525 12.4448ZM89.7948 12.4448C89.7948 11.4687 89.3551 10.8979 88.5834 10.8979C87.8088 10.8979 87.373 11.4687 87.373 12.4448C87.373 13.4287 87.8088 13.9951 88.5834 13.9951C89.3551 13.9951 89.7948 13.4248 89.7948 12.4448Z" fill="white"/>
<path d="M91.9072 10.1949H92.7651V10.9102H92.8317C92.9447 10.6533 93.1352 10.4379 93.3768 10.2941C93.6183 10.1503 93.8988 10.0852 94.1792 10.1079C94.3989 10.0915 94.6196 10.1245 94.8247 10.2046C95.0299 10.2847 95.2144 10.4098 95.3645 10.5707C95.5146 10.7315 95.6265 10.924 95.6919 11.1338C95.7572 11.3436 95.7744 11.5654 95.7422 11.7827V14.6977H94.851V12.0059C94.851 11.2823 94.5357 10.9224 93.8766 10.9224C93.7274 10.9155 93.5785 10.9408 93.4401 10.9966C93.3016 11.0525 93.1769 11.1375 93.0745 11.2459C92.9721 11.3543 92.8944 11.4834 92.8467 11.6246C92.7991 11.7657 92.7826 11.9154 92.7984 12.0635V14.6978H91.9072V10.1949Z" fill="white"/>
<path d="M100.778 9.07422V10.2158H101.756V10.9644H100.778V13.2798C100.778 13.7515 100.973 13.958 101.416 13.958C101.53 13.9576 101.643 13.9508 101.756 13.9375V14.6777C101.596 14.7063 101.434 14.7215 101.272 14.7231C100.28 14.7231 99.8858 14.3755 99.8858 13.5073V10.9643H99.1689V10.2158H99.8858V9.07422H100.778Z" fill="white"/>
<path d="M102.974 8.4375H103.857V10.919H103.927C104.046 10.6596 104.242 10.443 104.488 10.2987C104.734 10.1543 105.019 10.0893 105.304 10.1123C105.523 10.1004 105.741 10.1368 105.944 10.2189C106.147 10.3009 106.329 10.4266 106.478 10.5869C106.626 10.7473 106.738 10.9383 106.804 11.1465C106.87 11.3546 106.889 11.5747 106.859 11.791V14.6982H105.967V12.0103C105.967 11.291 105.631 10.9268 105.002 10.9268C104.849 10.9142 104.695 10.9352 104.55 10.9883C104.406 11.0413 104.275 11.1252 104.167 11.2339C104.059 11.3426 103.976 11.4737 103.923 11.6178C103.871 11.7619 103.851 11.9157 103.865 12.0683V14.6982H102.974L102.974 8.4375Z" fill="white"/>
<path d="M112.056 13.4825C111.935 13.894 111.673 14.25 111.315 14.4882C110.957 14.7263 110.527 14.8315 110.099 14.7852C109.802 14.7931 109.506 14.7362 109.233 14.6187C108.96 14.5012 108.715 14.3258 108.517 14.1046C108.318 13.8835 108.171 13.6219 108.084 13.3381C107.997 13.0543 107.973 12.755 108.013 12.461C107.974 12.1661 107.998 11.8662 108.085 11.5815C108.172 11.2969 108.319 11.0341 108.516 10.811C108.714 10.5879 108.957 10.4098 109.229 10.2886C109.502 10.1674 109.797 10.1059 110.095 10.1085C111.352 10.1085 112.11 10.9645 112.11 12.3785V12.6886H108.921V12.7384C108.907 12.9036 108.928 13.0699 108.982 13.2267C109.037 13.3834 109.123 13.5271 109.236 13.6486C109.35 13.7701 109.487 13.8666 109.64 13.932C109.793 13.9974 109.958 14.0302 110.124 14.0284C110.337 14.0539 110.553 14.0156 110.744 13.9184C110.936 13.8212 111.094 13.6694 111.198 13.4825L112.056 13.4825ZM108.921 12.0313H111.202C111.213 11.8802 111.193 11.7284 111.142 11.5857C111.09 11.443 111.01 11.3125 110.905 11.2026C110.801 11.0928 110.674 11.006 110.534 10.9478C110.393 10.8896 110.242 10.8613 110.09 10.8648C109.936 10.8629 109.783 10.8917 109.641 10.9497C109.498 11.0076 109.368 11.0935 109.259 11.2022C109.15 11.3109 109.064 11.4403 109.006 11.5827C108.948 11.7251 108.919 11.8776 108.921 12.0313H108.921Z" fill="white"/>
</svg>
</span><span class="me-2 d-none d-lg-inline-block"><svg class='<nil>' width="26" height="31" viewBox="0 0 26 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.8866 16.3001C20.9017 15.1253 21.2147 13.9734 21.7962 12.9516C22.3778 11.9297 23.2091 11.0712 24.2129 10.4559C23.5752 9.54776 22.734 8.80043 21.7561 8.27322C20.7782 7.74602 19.6904 7.45346 18.5793 7.4188C16.209 7.1707 13.9112 8.83315 12.7033 8.83315C11.4721 8.83315 9.61244 7.44343 7.60989 7.48452C6.31458 7.52625 5.05221 7.90186 3.94575 8.57475C2.8393 9.24765 1.92651 10.1949 1.29632 11.3242C-1.43354 16.0372 0.602689 22.9639 3.21767 26.7736C4.52599 28.6391 6.05506 30.723 8.0558 30.6491C10.0136 30.5681 10.7449 29.4041 13.1082 29.4041C15.4495 29.4041 16.1355 30.6491 18.1769 30.6021C20.2778 30.5681 21.6014 28.7283 22.8638 26.8451C23.8039 25.5159 24.5272 24.0468 25.0071 22.4922C23.7865 21.9774 22.745 21.1158 22.0122 20.0146C21.2795 18.9135 20.888 17.6216 20.8866 16.3001Z" fill="white"/>
<path d="M17.0298 4.91325C18.1753 3.542 18.7396 1.77948 18.603 0C16.8529 0.183293 15.2364 1.01735 14.0754 2.336C13.5078 2.98019 13.0731 3.72962 12.7961 4.54146C12.5191 5.3533 12.4052 6.21162 12.4611 7.06735C13.3364 7.07634 14.2024 6.88714 14.9938 6.51402C15.7851 6.14089 16.4813 5.59356 17.0298 4.91325Z" fill="white"/>
</svg>
</span></a><a href="https://play.google.com/store/apps/details?id=com.datadog.app" aria-label="Google Play Store Link"><span class="d-inline-block d-lg-none"><svg class='<nil>' width="135" height="40" viewBox="0 0 135 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="134" height="39" rx="4.5" fill="#110617" stroke="#979797"/>
<path d="M47.4196 10.24C47.436 10.6067 47.3781 10.973 47.2492 11.3167C47.1203 11.6604 46.9231 11.9745 46.6696 12.24C46.3855 12.5333 46.0427 12.7633 45.6636 12.9149C45.2845 13.0666 44.8776 13.1364 44.4696 13.12C44.0593 13.1291 43.6514 13.054 43.2713 12.8992C42.8912 12.7444 42.5468 12.5132 42.2596 12.22C41.9633 11.9325 41.7296 11.5869 41.573 11.2049C41.4164 10.8229 41.3404 10.4127 41.3496 9.99997C41.339 9.58557 41.4144 9.17346 41.571 8.78964C41.7276 8.40583 41.9621 8.05864 42.2596 7.76997C42.7051 7.33466 43.2693 7.04071 43.8814 6.92506C44.4934 6.80942 45.126 6.87723 45.6996 7.11997C46.0602 7.26821 46.3819 7.49746 46.6396 7.78997L46.1096 8.31997C45.911 8.08075 45.6594 7.89111 45.3747 7.76613C45.09 7.64114 44.7801 7.58425 44.4696 7.59997C44.1573 7.59844 43.8478 7.66 43.5598 7.78096C43.2718 7.90193 43.0112 8.0798 42.7937 8.30391C42.5761 8.52803 42.406 8.79378 42.2936 9.08522C42.1812 9.37666 42.1288 9.6878 42.1396 9.99997C42.1331 10.4661 42.2647 10.9237 42.518 11.3151C42.7712 11.7065 43.1347 12.0142 43.5626 12.1992C43.9904 12.3843 44.4635 12.4385 44.9222 12.355C45.3808 12.2715 45.8044 12.054 46.1396 11.73C46.448 11.396 46.6286 10.964 46.6496 10.51H44.4696V9.78997H47.3796C47.402 9.93903 47.4153 10.0893 47.4196 10.24Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M51.9995 7.74H49.2995V9.64H51.7595V10.36H49.2995V12.26H51.9995V13H48.5195V7H51.9995V7.74Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M55.2801 13H54.5101V7.74H52.8301V7H57.0001V7.74H55.2801V13Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M59.9395 13V7H60.7095V13H59.9395Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M64.1297 13H63.3597V7.74H61.6797V7H65.7997V7.74H64.1297V13Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M73.6097 12.2201C73.3208 12.5092 72.9779 12.7385 72.6004 12.895C72.2229 13.0514 71.8183 13.1319 71.4097 13.1319C71.001 13.1319 70.5964 13.0514 70.2189 12.895C69.8414 12.7385 69.4985 12.5092 69.2097 12.2201C68.9188 11.9301 68.6906 11.5834 68.5392 11.2015C68.3879 10.8196 68.3165 10.4107 68.3297 10.0001C68.3165 9.58957 68.3879 9.18068 68.5392 8.79881C68.6906 8.41694 68.9188 8.07022 69.2097 7.78014C69.4923 7.48294 69.8341 7.24838 70.2131 7.09162C70.592 6.93487 70.9997 6.85941 71.4097 6.87014C71.8191 6.86367 72.2254 6.94106 72.6038 7.09756C72.9821 7.25407 73.3245 7.48636 73.6097 7.78014C73.8972 8.07263 74.1232 8.41978 74.2744 8.80107C74.4255 9.18237 74.4987 9.59008 74.4897 10.0001C74.5028 10.4107 74.4314 10.8196 74.2801 11.2015C74.1287 11.5834 73.9005 11.9301 73.6097 12.2201ZM69.7797 11.7201C69.9927 11.936 70.2465 12.1074 70.5263 12.2244C70.8061 12.3414 71.1064 12.4017 71.4097 12.4017C71.7129 12.4017 72.0132 12.3414 72.293 12.2244C72.5728 12.1074 72.8266 11.936 73.0397 11.7201C73.2612 11.4932 73.4347 11.2239 73.5498 10.9284C73.6649 10.6328 73.7193 10.3171 73.7097 10.0001C73.7141 9.6803 73.6534 9.36289 73.5313 9.06721C73.4093 8.77154 73.2284 8.50376 72.9997 8.28014C72.7866 8.06427 72.5328 7.89286 72.253 7.77586C71.9732 7.65887 71.6729 7.59862 71.3697 7.59862C71.0664 7.59862 70.7661 7.65887 70.4863 7.77586C70.2065 7.89286 69.9527 8.06427 69.7397 8.28014C69.5253 8.51038 69.3592 8.78115 69.251 9.07653C69.1428 9.37191 69.0947 9.68593 69.1097 10.0001C69.1 10.3171 69.1544 10.6328 69.2695 10.9284C69.3846 11.2239 69.5581 11.4932 69.7797 11.7201Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M75.5801 13V7H76.5101L79.4301 11.67V10.51V7H80.2001V13H79.4001L76.3501 8.11V9.26V13H75.5801Z" fill="white" stroke="white" stroke-width="0.2" stroke-miterlimit="10"/>
<path d="M68.1401 21.7499C67.2976 21.7519 66.4745 22.0037 65.7751 22.4734C65.0756 22.9432 64.5312 23.6098 64.2106 24.3889C63.89 25.1681 63.8076 26.0248 63.9739 26.8508C64.1402 27.6768 64.5477 28.4349 65.1449 29.0292C65.7421 29.6236 66.5021 30.0276 67.3288 30.19C68.1556 30.3524 69.0119 30.2661 69.7896 29.9418C70.5672 29.6175 71.2313 29.07 71.6977 28.3683C72.1642 27.6667 72.4121 26.8425 72.4101 25.9999C72.4183 25.4379 72.3132 24.8799 72.1013 24.3593C71.8893 23.8386 71.5748 23.366 71.1764 22.9694C70.7779 22.5729 70.3038 22.2606 69.7822 22.051C69.2606 21.8415 68.7021 21.7391 68.1401 21.7499ZM68.1401 28.5799C67.6237 28.616 67.1083 28.496 66.6611 28.2353C66.2138 27.9747 65.8553 27.5855 65.6321 27.1184C65.409 26.6512 65.3315 26.1278 65.4098 25.6161C65.4881 25.1043 65.7185 24.628 66.0711 24.249C66.4237 23.8699 66.8821 23.6057 67.3869 23.4907C67.8916 23.3757 68.4193 23.4152 68.9013 23.604C69.3833 23.7929 69.7973 24.1223 70.0896 24.5496C70.3819 24.9769 70.5388 25.4822 70.5401 25.9999C70.5562 26.3279 70.5065 26.6559 70.3938 26.9643C70.2812 27.2728 70.1079 27.5556 69.8842 27.7961C69.6606 28.0366 69.391 28.2298 69.0914 28.3644C68.7919 28.499 68.4684 28.5723 68.1401 28.5799ZM58.8201 21.7499C57.9776 21.7519 57.1545 22.0037 56.4551 22.4734C55.7556 22.9432 55.2112 23.6098 54.8906 24.3889C54.57 25.1681 54.4876 26.0248 54.6539 26.8508C54.8202 27.6768 55.2277 28.4349 55.8249 29.0292C56.4221 29.6236 57.1821 30.0276 58.0088 30.19C58.8356 30.3524 59.6919 30.2661 60.4696 29.9418C61.2472 29.6175 61.9113 29.07 62.3777 28.3683C62.8442 27.6667 63.0921 26.8425 63.0901 25.9999C63.0983 25.4379 62.9932 24.8799 62.7813 24.3593C62.5693 23.8386 62.2548 23.366 61.8564 22.9694C61.4579 22.5729 60.9838 22.2606 60.4622 22.051C59.9406 21.8415 59.3821 21.7391 58.8201 21.7499ZM58.8201 28.5799C58.3037 28.616 57.7883 28.496 57.3411 28.2353C56.8938 27.9747 56.5353 27.5855 56.3121 27.1184C56.089 26.6512 56.0115 26.1278 56.0898 25.6161C56.1681 25.1043 56.3985 24.628 56.7511 24.249C57.1037 23.8699 57.5621 23.6057 58.0669 23.4907C58.5716 23.3757 59.0993 23.4152 59.5813 23.604C60.0633 23.7929 60.4773 24.1223 60.7696 24.5496C61.0619 24.9769 61.2188 25.4822 61.2201 25.9999C61.2362 26.3279 61.1865 26.6559 61.0738 26.9643C60.9612 27.2728 60.7879 27.5556 60.5642 27.7961C60.3406 28.0366 60.071 28.2298 59.7714 28.3644C59.4719 28.499 59.1484 28.5723 58.8201 28.5799ZM47.7401 23.0599V24.8599H52.0601C51.9924 25.7077 51.6399 26.5077 51.0601 27.1299C50.6268 27.5714 50.1056 27.9171 49.5302 28.1444C48.9549 28.3718 48.3382 28.4759 47.7201 28.4499C46.4471 28.4499 45.2262 27.9442 44.326 27.044C43.4258 26.1439 42.9201 24.923 42.9201 23.6499C42.9201 22.3769 43.4258 21.156 44.326 20.2558C45.2262 19.3556 46.4471 18.8499 47.7201 18.8499C48.9405 18.8318 50.119 19.2952 51.0001 20.1399L52.2701 18.8699C51.6741 18.2804 50.9664 17.8158 50.1886 17.5033C49.4107 17.1908 48.5783 17.0366 47.7401 17.0499C46.8511 17.0153 45.9643 17.1605 45.1327 17.4769C44.3012 17.7932 43.5421 18.2742 42.9009 18.8909C42.2596 19.5077 41.7495 20.2475 41.4011 21.0661C41.0527 21.8847 40.873 22.7652 40.873 23.6549C40.873 24.5446 41.0527 25.4251 41.4011 26.2437C41.7495 27.0623 42.2596 27.8022 42.9009 28.4189C43.5421 29.0357 44.3012 29.5166 45.1327 29.833C45.9643 30.1493 46.8511 30.2945 47.7401 30.2599C48.5955 30.2941 49.4485 30.1469 50.243 29.8281C51.0375 29.5092 51.7556 29.0259 52.3501 28.4099C53.4002 27.2563 53.9598 25.7391 53.9101 24.1799C53.9137 23.8046 53.8836 23.4298 53.8201 23.0599H47.7401ZM93.0501 24.4599C92.7893 23.6927 92.3016 23.0227 91.6516 22.5388C91.0016 22.0548 90.2199 21.7797 89.4101 21.7499C88.8631 21.7489 88.3217 21.86 87.8193 22.0765C87.317 22.2929 86.8644 22.6101 86.4895 23.0085C86.1146 23.4068 85.8254 23.8778 85.6397 24.3923C85.4541 24.9068 85.3759 25.454 85.4101 25.9999C85.4016 26.9128 85.6885 27.8039 86.2282 28.5402C86.7679 29.2765 87.5313 29.8184 88.4044 30.0851C89.2774 30.3517 90.2134 30.3288 91.0723 30.0196C91.9313 29.7105 92.6672 29.1318 93.1701 28.3699L91.7201 27.3699C91.5039 27.7302 91.1974 28.0277 90.8307 28.2329C90.4641 28.4382 90.0502 28.544 89.6301 28.5399C89.1967 28.5578 88.768 28.4442 88.4003 28.214C88.0327 27.9837 87.7432 27.6477 87.5701 27.2499L93.2601 24.8999L93.0501 24.4599ZM87.2501 25.8799C87.2298 25.5698 87.2718 25.2588 87.3736 24.9651C87.4753 24.6715 87.6348 24.4012 87.8426 24.1701C88.0504 23.939 88.3023 23.7518 88.5835 23.6195C88.8647 23.4873 89.1696 23.4126 89.4801 23.3999C89.8012 23.3794 90.1213 23.4537 90.4005 23.6138C90.6796 23.7738 90.9056 24.0124 91.0501 24.2999L87.2501 25.8799ZM82.6301 29.9999H84.5001V17.4999H82.6301V29.9999ZM79.5701 22.6999H79.5001C79.2162 22.3909 78.8694 22.1462 78.483 21.9823C78.0966 21.8185 77.6796 21.7392 77.2601 21.7499C76.1673 21.8029 75.1367 22.2743 74.3821 23.0665C73.6274 23.8587 73.2064 24.9108 73.2064 26.0049C73.2064 27.099 73.6274 28.1512 74.3821 28.9433C75.1367 29.7355 76.1673 30.2069 77.2601 30.2599C77.6841 30.2684 78.1047 30.1832 78.4919 30.0103C78.8791 29.8375 79.2234 29.5812 79.5001 29.2599H79.5701V29.8699C79.5701 31.4999 78.7001 32.3699 77.3001 32.3699C76.8324 32.3596 76.3783 32.2106 75.9955 31.9418C75.6127 31.6729 75.3185 31.2964 75.1501 30.8599L73.5301 31.5299C73.8296 32.2822 74.3504 32.9258 75.0235 33.3758C75.6966 33.8257 76.4905 34.0608 77.3001 34.0499C79.4901 34.0499 81.3001 32.7599 81.3001 29.6199V21.9999H79.5701V22.6999ZM77.4201 28.5799C76.7649 28.5391 76.1499 28.25 75.7004 27.7716C75.2509 27.2932 75.0006 26.6614 75.0006 26.0049C75.0006 25.3485 75.2509 24.7167 75.7004 24.2383C76.1499 23.7598 76.7649 23.4708 77.4201 23.4299C77.7403 23.4437 78.0545 23.5218 78.344 23.6596C78.6334 23.7973 78.8922 23.9918 79.1049 24.2316C79.3176 24.4714 79.4799 24.7515 79.5822 25.0553C79.6844 25.3591 79.7245 25.6803 79.7001 25.9999C79.7274 26.3206 79.6893 26.6435 79.5883 26.9491C79.4872 27.2546 79.3252 27.5365 79.1121 27.7777C78.8989 28.0189 78.6391 28.2143 78.3483 28.3522C78.0575 28.4901 77.7417 28.5676 77.4201 28.5799ZM101.81 17.4999H97.3301V29.9999H99.2001V25.2599H101.81C102.343 25.2982 102.878 25.2263 103.382 25.0486C103.886 24.871 104.348 24.5915 104.739 24.2274C105.13 23.8634 105.442 23.4227 105.655 22.9328C105.869 22.4428 105.979 21.9142 105.979 21.3799C105.979 20.8456 105.869 20.317 105.655 19.8271C105.442 19.3372 105.13 18.8965 104.739 18.5324C104.348 18.1684 103.886 17.8888 103.382 17.7112C102.878 17.5336 102.343 17.4616 101.81 17.4999ZM101.81 23.4999H99.2001V19.2399H101.85C102.418 19.2399 102.962 19.4654 103.363 19.8667C103.765 20.268 103.99 20.8124 103.99 21.3799C103.99 21.9475 103.765 22.4918 103.363 22.8931C102.962 23.2945 102.418 23.5199 101.85 23.5199L101.81 23.4999ZM113.35 21.7099C112.669 21.6679 111.991 21.8265 111.399 22.1659C110.807 22.5054 110.328 23.0109 110.02 23.6199L111.67 24.3099C111.837 24.0093 112.087 23.7634 112.39 23.6019C112.694 23.4405 113.038 23.3703 113.38 23.3999C113.617 23.3722 113.858 23.392 114.088 23.4582C114.317 23.5245 114.531 23.6358 114.718 23.7856C114.904 23.9355 115.058 24.1209 115.172 24.3311C115.286 24.5413 115.356 24.7721 115.38 25.0099V25.1299C114.779 24.8138 114.109 24.6491 113.43 24.6499C111.65 24.6499 109.83 25.6499 109.83 27.4699C109.848 27.8568 109.943 28.2361 110.11 28.5855C110.277 28.9348 110.513 29.247 110.803 29.5035C111.093 29.7601 111.432 29.9557 111.799 30.0787C112.166 30.2018 112.554 30.2498 112.94 30.2199C113.409 30.2459 113.877 30.1466 114.295 29.9322C114.714 29.7178 115.067 29.3961 115.32 28.9999H115.38V29.9999H117.18V25.1899C117.18 22.9999 115.52 21.7299 113.39 21.7299L113.35 21.7099ZM113.12 28.5599C112.51 28.5599 111.66 28.2499 111.66 27.4999C111.66 26.4999 112.72 26.1599 113.66 26.1599C114.254 26.1453 114.841 26.2903 115.36 26.5799C115.297 27.123 115.04 27.6249 114.635 27.9926C114.231 28.3604 113.707 28.569 113.16 28.5799L113.12 28.5599ZM123.74 21.9999L121.6 27.4199H121.54L119.32 21.9999H117.32L120.65 29.5799L118.75 33.7899H120.75L125.82 21.9999H123.74ZM106.94 29.9999H108.8V17.4999H106.94V29.9999Z" fill="white"/>
<path d="M10.4402 7.5407C10.1214 7.93476 9.96415 8.43514 10.0002 8.9407V31.0607C9.96615 31.5711 10.1351 32.0742 10.4702 32.4607L10.5402 32.5407L22.9002 20.1507V19.8507L10.5102 7.4707L10.4402 7.5407Z" fill="url(#paint0_linear)"/>
<path d="M27.0004 24.2807L22.9004 20.1507V19.8507L27.0004 15.7207L27.0904 15.7807L32.0004 18.5607C33.4004 19.3507 33.4004 20.6507 32.0004 21.4507L27.1104 24.2307L27.0004 24.2807Z" fill="url(#paint1_linear)"/>
<path d="M27.1195 24.23L22.8995 20L10.4395 32.46C10.722 32.7115 11.0837 32.8562 11.4618 32.869C11.8399 32.8818 12.2105 32.7619 12.5095 32.53L27.1195 24.23Z" fill="url(#paint2_linear)"/>
<path d="M27.1195 15.7805L12.5095 7.48046C12.2125 7.24537 11.8421 7.12251 11.4635 7.13349C11.0849 7.14446 10.7223 7.28857 10.4395 7.54046L22.8995 20.0005L27.1195 15.7805Z" fill="url(#paint3_linear)"/>
<path opacity="0.2" d="M26.9995 24.1299L12.5095 32.3799C12.2214 32.5973 11.8703 32.7149 11.5095 32.7149C11.1486 32.7149 10.7975 32.5973 10.5095 32.3799L10.4395 32.4499L10.5095 32.5299C10.7975 32.7473 11.1486 32.8649 11.5095 32.8649C11.8703 32.8649 12.2214 32.7473 12.5095 32.5299L27.1195 24.2299L26.9995 24.1299Z" fill="black"/>
<path opacity="0.12" d="M10.4399 32.3202C10.1187 31.9235 9.96126 31.4191 9.99988 30.9102V31.0602C9.96585 31.5705 10.1348 32.0737 10.4699 32.4602L10.5399 32.3902L10.4399 32.3202Z" fill="black"/>
<path opacity="0.12" d="M32 21.3L27 24.13L27.09 24.23L32 21.44C32.2898 21.3174 32.5413 21.119 32.7278 20.8656C32.9143 20.6122 33.0291 20.3132 33.06 20C32.9975 20.2846 32.869 20.5505 32.6849 20.7763C32.5007 21.0021 32.2662 21.1815 32 21.3Z" fill="black"/>
<path opacity="0.25" d="M12.51 7.61998L32 18.7C32.2662 18.8185 32.5007 18.9979 32.6849 19.2237C32.869 19.4495 32.9975 19.7154 33.06 20C33.0291 19.6868 32.9143 19.3878 32.7278 19.1344C32.5413 18.881 32.2898 18.6825 32 18.56L12.51 7.47998C11.12 6.67998 10 7.33998 10 8.93998V9.08998C10 7.48998 11.12 6.82998 12.51 7.61998Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear" x1="21.8002" y1="8.7107" x2="5.02018" y2="25.4907" gradientUnits="userSpaceOnUse">
<stop stop-color="#00A0FF"/>
<stop offset="0.01" stop-color="#00A1FF"/>
<stop offset="0.26" stop-color="#00BEFF"/>
<stop offset="0.51" stop-color="#00D2FF"/>
<stop offset="0.76" stop-color="#00DFFF"/>
<stop offset="1" stop-color="#00E3FF"/>
</linearGradient>
<linearGradient id="paint1_linear" x1="33.8304" y1="20.0007" x2="9.64039" y2="20.0007" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFE000"/>
<stop offset="0.41" stop-color="#FFBD00"/>
<stop offset="0.78" stop-color="#FFA500"/>
<stop offset="1" stop-color="#FF9C00"/>
</linearGradient>
<linearGradient id="paint2_linear" x1="24.8295" y1="22.3" x2="2.06945" y2="45.05" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF3A44"/>
<stop offset="1" stop-color="#C31162"/>
</linearGradient>
<linearGradient id="paint3_linear" x1="7.29945" y1="0.180458" x2="17.4595" y2="10.3405" gradientUnits="userSpaceOnUse">
<stop stop-color="#32A071"/>
<stop offset="0.07" stop-color="#2DA771"/>
<stop offset="0.48" stop-color="#15CF74"/>
<stop offset="0.8" stop-color="#06E775"/>
<stop offset="1" stop-color="#00F076"/>
</linearGradient>
</defs>
</svg>
</span><span class="me-2 d-none d-lg-inline-block"><svg class='<nil>' width="25" height="27" viewBox="0 0 25 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.8452 17.8161L13.4478 13.4082L0.463867 26.3921C0.758323 26.6542 1.13522 26.805 1.52921 26.8183C1.92319 26.8317 2.30942 26.7067 2.62091 26.4651L17.8452 17.8161Z" fill="url(#paint0_linear4)"/>
<path d="M0.463776 0.424506C0.131609 0.835131 -0.0322666 1.35655 0.00527509 1.88337V24.9335C-0.0301817 25.4653 0.145841 25.9897 0.495038 26.3924L0.567982 26.4757L13.4477 13.5647V13.2521L0.53672 0.351562L0.463776 0.424506Z" fill="url(#paint1_linear3)"/>
<path d="M17.7197 17.8682L13.4473 13.5645V13.2519L17.7197 8.94824L17.8135 9.01076L22.9299 11.9077C24.3888 12.7309 24.3888 14.0855 22.9299 14.9192L17.8343 17.8161L17.7197 17.8682Z" fill="url(#paint2_linear3)"/>
<path d="M17.8452 9.01127L2.62091 0.362264C2.31145 0.117293 1.92552 -0.0107306 1.531 0.000704822C1.13648 0.0121402 0.758621 0.162302 0.463867 0.424787L13.4478 13.4087L17.8452 9.01127Z" fill="url(#paint3_linear3)"/>
<defs>
<linearGradient id="paint0_linear4" x1="15.459" y1="15.8049" x2="-8.25809" y2="39.5115" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF3A44"/>
<stop offset="1" stop-color="#C31162"/>
</linearGradient>
<linearGradient id="paint1_linear3" x1="12.3015" y1="1.6437" x2="-5.18413" y2="19.1293" gradientUnits="userSpaceOnUse">
<stop stop-color="#00A0FF"/>
<stop offset="0.01" stop-color="#00A1FF"/>
<stop offset="0.26" stop-color="#00BEFF"/>
<stop offset="0.51" stop-color="#00D2FF"/>
<stop offset="0.76" stop-color="#00DFFF"/>
<stop offset="1" stop-color="#00E3FF"/>
</linearGradient>
<linearGradient id="paint2_linear3" x1="24.8369" y1="13.4082" x2="-0.370305" y2="13.4082" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFE000"/>
<stop offset="0.41" stop-color="#FFBD00"/>
<stop offset="0.78" stop-color="#FFA500"/>
<stop offset="1" stop-color="#FF9C00"/>
</linearGradient>
<linearGradient id="paint3_linear3" x1="-2.80817" y1="-7.2447" x2="7.77905" y2="3.34252" gradientUnits="userSpaceOnUse">
<stop stop-color="#32A071"/>
<stop offset="0.07" stop-color="#2DA771"/>
<stop offset="0.48" stop-color="#15CF74"/>
<stop offset="0.8" stop-color="#06E775"/>
<stop offset="1" stop-color="#00F076"/>
</linearGradient>
</defs>
</svg></span></a></div><div class="border-bottom border-gray pt-4 d-lg-none"></div></div><div class="col-12 col-lg-4 order-2 order-lg-1"><p @click="openSection === 'product' ? (openSection = false) : (openSection = 'product')" class="text-white fw-bold text-uppercase header mb-0">Product</p><div class="border-bottom border-gray d-none d-lg-block"></div><div x-show.important="desktop || openSection === 'product'" class="d-flex gap-3 py-16 py-lg-1"><div class="footer-menu d-inline-flex flex-column w-50"><span class=d-inline-flex><a href=https://www.datadoghq.com/product/infrastructure-monitoring/ class=d-inline-block>Infrastructure Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/network-monitoring/ class=d-inline-block>Network Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/container-monitoring/ class=d-inline-block>Container Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/serverless-monitoring/ class=d-inline-block>Serverless</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-cost-management/ class=d-inline-block>Cloud Cost Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloudcraft/ class=d-inline-block>Cloudcraft</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/kubernetes-autoscaling/ class=d-inline-block>Kubernetes Autoscaling</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/apm/ class=d-inline-block>Application Performance Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/software-catalog/ class=d-inline-block>Software Catalog</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/universal-service-monitoring/ class=d-inline-block>Universal Service Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/data-streams-monitoring/ class=d-inline-block>Data Streams Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/data-observability/jobs-monitoring/ class=d-inline-block>Jobs Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/data-observability/quality-monitoring/ class=d-inline-block>Quality Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/database-monitoring/ class=d-inline-block>Database Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/code-profiling/ class=d-inline-block>Continuous Profiler</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/dynamic-instrumentation/ class=d-inline-block>Dynamic Instrumentation</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/log-management/ class=d-inline-block>Log Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/sensitive-data-scanner/ class=d-inline-block>Sensitive Data Scanner</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/audit-trail/ class=d-inline-block>Audit Trail</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/observability-pipelines/ class=d-inline-block>Observability Pipelines</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-security/ class=d-inline-block>Cloud Security</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-security/#posture-management class=d-inline-block>Cloud Security Posture Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/workload-protection/ class=d-inline-block>Workload Protection</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-security/#entitlement-management class=d-inline-block>Cloud Infrastructure Entitlement Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-security/#vulnerability-management class=d-inline-block>Vulnerability Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-security/#compliance class=d-inline-block>Compliance</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/app-and-api-protection/ class=d-inline-block>App and API Protection</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/software-composition-analysis/ class=d-inline-block>Software Composition Analysis</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/code-security/ class=d-inline-block>Code Security</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/sast/ class=d-inline-block>Static Code Analysis (SAST)</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/iast/ class=d-inline-block>Runtime Code Analysis (IAST)</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/iac-security class=d-inline-block>IaC Security</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/cloud-siem/ class=d-inline-block>Cloud SIEM</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/real-user-monitoring/ class=d-inline-block>Browser Real User Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/real-user-monitoring/mobile-rum/ class=d-inline-block>Mobile Real User Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/product-analytics/ class=d-inline-block>Product Analytics</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/experiments/ class=d-inline-block>Experiments</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/real-user-monitoring/session-replay/ class=d-inline-block>Session Replay</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/synthetic-monitoring/ class=d-inline-block>Synthetic Monitoring</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/mobile-app-testing/ class=d-inline-block>Mobile App Testing</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/continuous-testing/ class=d-inline-block>Continuous Testing</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/error-tracking/ class=d-inline-block>Error Tracking</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/byoc-logs/ class=d-inline-block>BYOC Log Management</a>
</span><span class=d-inline-flex><a href=https://www.datadoghq.com/product/internal-developer-portal/ class=d-inline-block>Internal Developer Portal</a></span></div><div class="footer-menu d-inline-flex flex-column w-50"><a href=https://www.datadoghq.com/product/ci-cd-monitoring/ class=d-inline-block>CI Visibility</a>
<a href=https://www.datadoghq.com/product/test-optimization/ class=d-inline-block>Test Optimization</a>
<a href=https://www.datadoghq.com/product/feature-flags/ class=d-inline-block>Feature Flags</a>
<a href=https://www.datadoghq.com/product/code-coverage/ class=d-inline-block>Code Coverage</a>
<a href=https://www.datadoghq.com/product/software-delivery/ai-impact/ class=d-inline-block>AI Impact</a>
<a href=https://www.datadoghq.com/product/service-level-objectives/ class=d-inline-block>Service Level Objectives</a>
<a href=https://www.datadoghq.com/product/incident-response/ class=d-inline-block>Incident Response</a>
<a href=https://www.datadoghq.com/product/event-management/ class=d-inline-block>Event Management</a>
<a href=https://www.datadoghq.com/product/case-management/ class=d-inline-block>Case Management</a>
<a href=https://www.datadoghq.com/product/ai/bits-ai-agents/ class=d-inline-block>Bits AI Agents</a>
<a href=https://www.datadoghq.com/product/ai/bits-code/ class=d-inline-block>Bits Code</a>
<a href=https://www.datadoghq.com/product/ai/bits-investigation/ class=d-inline-block>Bits Investigation</a>
<a href=https://www.datadoghq.com/product/ai/bits-security-analyst/ class=d-inline-block>Bits Security Analyst</a>
<a href=https://www.datadoghq.com/product/ai/bits-agent-builder/ class=d-inline-block>Bits Agent Builder</a>
<a href=https://www.datadoghq.com/product/ai/bits-chat/ class=d-inline-block>Bits Chat</a>
<a href=https://www.datadoghq.com/product/ai/mcp-server/ class=d-inline-block>MCP Server</a>
<a href=https://www.datadoghq.com/product/ai/mcp-server/ class=d-inline-block>Pup CLI</a>
<a href=https://www.datadoghq.com/product/ai/agent-directory/ class=d-inline-block>Agent Directory</a>
<a href=https://www.datadoghq.com/product/metrics/ class=d-inline-block>Metrics</a>
<a href=https://www.datadoghq.com/product/platform/watchdog/ class=d-inline-block>Watchdog</a>
<a href=https://www.datadoghq.com/products/ai/agent-observability/ class=d-inline-block>Agent Observability</a>
<a href=https://www.datadoghq.com/product/platform/integrations/#cat-aiml class=d-inline-block>AI Integrations</a>
<a href=https://www.datadoghq.com/product/workflow-automation/ class=d-inline-block>Workflow Automation</a>
<a href=https://www.datadoghq.com/product/app-builder/ class=d-inline-block>App Builder</a>
<a href=https://docs.datadoghq.com/account_management/teams/ class=d-inline-block>Teams</a>
<a href=https://www.datadoghq.com/product/platform/dashboards/ class=d-inline-block>Dashboards</a>
<a href=https://docs.datadoghq.com/notebooks/ class=d-inline-block>Notebooks</a>
<a href="https://docs.datadoghq.com/service_management/mobile/?tab=ios" class=d-inline-block>Mobile App</a>
<a href=https://www.datadoghq.com/product/fleet-automation/ class=d-inline-block>Fleet Automation</a>
<a href=https://www.datadoghq.com/product/governance-console/ class=d-inline-block>Governance Console</a>
<a href="https://docs.datadoghq.com/account_management/rbac/?tab=datadogapplication" class=d-inline-block>Access Control</a>
<a href=https://www.datadoghq.com/solutions/opentelemetry/ class=d-inline-block>OpenTelemetry</a>
<a href=https://www.datadoghq.com/product/platform/alerts/ class=d-inline-block>Alerts</a>
<a href=https://www.datadoghq.com/product/platform/integrations/ class=d-inline-block>Integrations</a>
<a href=https://www.datadoghq.com/product/platform/ides/ class=d-inline-block>IDE Plugins</a>
<a href=https://docs.datadoghq.com/api/ class=d-inline-block>API</a>
<a href=https://www.datadoghq.com/marketplacepartners/ class=d-inline-block>Marketplace</a>
<a href=https://securitylabs.datadoghq.com/ class=d-inline-block>Security Labs Research</a>
<a href=https://opensource.datadoghq.com/ class=d-inline-block>Open Source Projects</a>
<a href=https://www.datadoghq.com/product/storage-management/ class=d-inline-block>Storage Management</a>
<a href=https://www.datadoghq.com/product/gpu-monitoring/ class=d-inline-block>GPU Monitoring</a>
<a href=https://www.datadoghq.com/product/platform/dora-metrics/ class=d-inline-block>DORA Metrics</a>
<a href=https://www.datadoghq.com/product/secret-scanning/ class=d-inline-block>Secret Scanning</a></div></div><div class="border-bottom border-gray d-block d-lg-none pt-12"></div></div><div class="col-12 col-lg-2 order-1 order-lg-2"><p @click="openSection === 'resources' ? (openSection = false) : (openSection = 'resources')" class="text-white fw-bold text-uppercase header mb-0">Resources</p><div class="border-bottom border-gray d-none d-lg-block"></div><div x-show.important="desktop || openSection === 'resources'" class="d-flex flex-lg-column gap-3 gap-lg-0 py-16 py-lg-1"><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/pricing/>Pricing</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://docs.datadoghq.com/>Documentation</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/support/>Support</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/support-services/>Services & Enablement</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/product-preview/>Product Preview Program</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/certification/overview/>Certification</a></span></div><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><a class=d-inline-block href=https://opensource.datadoghq.com/>Open Source</a>
<a class=d-inline-block href=https://www.datadoghq.com/events-webinars/>Events and Webinars</a>
<a class=d-inline-block href=https://www.datadoghq.com/security/>Security</a>
<a class=d-inline-block href=https://www.datadoghq.com/privacy/>Privacy Center</a>
<a class=d-inline-block href=https://www.datadoghq.com/knowledge-center/>Knowledge Center</a>
<a class=d-inline-block href=https://www.datadoghq.com/learn/>Learning Resources</a></div></div><div class="border-bottom border-gray d-block d-lg-none pt-12"></div></div><div class="col-12 col-lg-2-about order-3"><p @click="openSection === 'about' ? (openSection = false) : (openSection = 'about')" class="text-white fw-bold text-uppercase header mb-0">About</p><div class="border-bottom border-gray d-none d-lg-block"></div><div x-show.important="desktop || openSection === 'about'" class="d-flex flex-lg-column gap-3 gap-lg-0 py-16 py-lg-1"><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/about/contact/>Contact Us</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/partner/network/>Partners</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/about/latest-news/press-releases/>Press</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/about/leadership/>Leadership</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://careers.datadoghq.com/>Careers</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/legal/>Legal</a></span></div><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><a class=d-inline-block href=https://investors.datadoghq.com/>Investor Relations</a>
<a class=d-inline-block href=https://www.datadoghq.com/about/analyst/>Analyst Reports</a>
<a class=d-inline-block href=https://www.datadoghq.com/esg-report/>ESG Report</a>
<a class=d-inline-block href=https://www.datadoghq.com/vendor-help/>Vendor Help</a>
<a class=d-inline-block href=https://www.datadoghq.com/trust/>Trust Hub</a></div></div><div class="border-bottom border-gray d-block d-lg-none pt-12"></div></div><div class="col-12 col-lg-1-blog order-4"><p @click="openSection === 'blog' ? (openSection = false) : (openSection = 'blog')" class="text-white fw-bold text-uppercase header mb-0">Blog</p><div class="border-bottom border-gray d-none d-lg-block"></div><div x-show.important="desktop || openSection === 'blog'" class="d-flex flex-lg-column gap-3 gap-lg-0 py-16 py-lg-1"><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/blog/>The Monitor</a>
</span><span class=d-inline-flex><a class=d-inline-block href=https://www.datadoghq.com/blog/engineering/>Engineering</a></span></div><div class="footer-menu d-inline-flex flex-column w-50 w-lg-100"><a class=d-inline-block href=https://www.datadoghq.com/blog/ai/>AI</a>
<a class=d-inline-block href=https://securitylabs.datadoghq.com/>Security Labs</a></div></div><div class="border-bottom border-gray d-block d-lg-none pt-12"></div></div></div></div><div class="border-top border-gray-darker d-none d-lg-block"></div><div class="pt-36 pt-lg-12"></div><div class=container><div class=row><div class="order-3 order-lg-2 col-12 col-lg-2 d-flex justify-content-center justify-content-lg-end"><div x-data="{ popup_open: false}" class="footer-menu h-100 footer-lang-toggle"><button type=button @click="popup_open = !popup_open" @keydown.escape="popup_open = false" :aria-expanded=popup_open aria-haspopup=listbox class="d-flex align-items-center justify-content-between text-white cursor-pointer w-100 h-100">
<span class="d-flex align-items-center"><span class="d-flex align-items-center"><svg class='<nil>' width="16px" height="16px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
    <title>Icon/world</title>
    <desc>Created with Sketch.</desc>
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M23,18.7142857 L15.1972484,18.7142857 C14.8808707,20.3582799 14.7142857,22.1185995 14.7142857,24 C14.7142857,26.101197 14.9220672,28.0513698 15.3142384,29.8571429 L23,29.8571429 L23,18.7142857 Z M25,18.7142857 L25,29.8571429 L32.6856474,29.8571429 C33.0778185,28.0513698 33.2856,26.101197 33.2856,24 C33.2856,22.1185995 33.119015,20.3582799 32.8026373,18.7142857 L25,18.7142857 Z M23,31.8571429 L15.8410328,31.8571429 C16.6874013,34.5709824 17.9826731,36.9218861 19.6311425,38.9369568 C20.7014808,40.2453264 21.8466701,41.314437 22.9882288,42.1603531 C22.9921555,42.1632629 22.9960793,42.1661678 23,42.1690678 L23,31.8571429 Z M25,31.8571429 L25,42.1689833 C25.0038827,42.1661114 25.0077683,42.1632346 25.0116569,42.1603531 C26.1532156,41.314437 27.298405,40.2453264 28.3687432,38.9369568 C30.0172126,36.9218861 31.3124844,34.5709824 32.1588529,31.8571429 L25,31.8571429 Z M23,16.7142857 L23,5.83093215 C22.9960793,5.83383218 22.9921555,5.83673708 22.9882288,5.83964686 C21.8466701,6.68556302 20.7014808,7.75467359 19.6311425,9.06304321 C17.8680399,11.2182402 16.508965,13.7576013 15.67101,16.7142857 L23,16.7142857 Z M25,16.7142857 L32.3288757,16.7142857 C31.4909207,13.7576013 30.1318458,11.2182402 28.3687432,9.06304321 C27.298405,7.75467359 26.1532156,6.68556302 25.0116569,5.83964686 C25.0077683,5.83676535 25.0038827,5.83388863 25,5.83101669 L25,16.7142857 Z M13.1635581,18.7142857 L5.74490713,18.7142857 C5.25990904,20.3922708 5,22.1657822 5,24 C5,26.043811 5.32270158,28.0122495 5.91993233,29.8571429 L13.2714898,29.8571429 C12.906587,28.0336164 12.7142857,26.0823166 12.7142857,24 C12.7142857,22.1336211 12.8687714,20.3724948 13.1635581,18.7142857 Z M20.4443338,42.6678567 C19.6363334,41.950688 18.8419739,41.130915 18.0831432,40.2033289 C16.1536635,37.8447543 14.6685687,35.0696382 13.7544275,31.8571429 L6.69559884,31.8571429 C9.21247658,37.3914264 14.3062352,41.5058446 20.4443338,42.6678567 Z M20.4443338,5.33214327 C14.0967882,6.53380609 8.86606956,10.8927992 6.44701478,16.7142857 L13.5990681,16.7142857 C14.4953973,13.2582719 16.04017,10.2939789 18.0831432,7.79667107 C18.8419739,6.86908497 19.6363334,6.04931197 20.4443338,5.33214327 Z M34.8363276,18.7142857 C35.1311143,20.3724948 35.2856,22.1336211 35.2856,24 C35.2856,26.0823166 35.0932987,28.0336164 34.7283959,29.8571429 L42.0800677,29.8571429 C42.6772984,28.0122495 43,26.043811 43,24 C43,22.1657822 42.740091,20.3922708 42.2550929,18.7142857 L34.8363276,18.7142857 Z M27.5555209,42.6678842 C33.6936845,41.5059095 38.7875036,37.39147 41.3044012,31.8571429 L34.2454582,31.8571429 C33.3313171,35.0696382 31.8462222,37.8447543 29.9167425,40.2033289 C29.1579022,41.1309269 28.363532,41.950709 27.5555209,42.6678842 Z M27.5555209,5.33211577 C28.363532,6.04929101 29.1579022,6.86907311 29.9167425,7.79667107 C31.9597158,10.2939789 33.5044884,13.2582719 34.4008176,16.7142857 L41.5529852,16.7142857 C39.133912,10.8927548 33.9031319,6.53373958 27.5555209,5.33211577 Z M45,24 C45,35.597999 35.597999,45 24,45 C12.402001,45 3,35.597999 3,24 C3,12.402001 12.402001,3 24,3 C35.597999,3 45,12.402001 45,24 Z"  fill="#ffffff" fill-rule="nonzero"></path>
    </g>
</svg>&nbsp;
</span><span class="d-flex align-items-center lang-toggle-text">English
</span></span><span class="d-flex align-items-center lang-toggle-arrow" :class="popup_open ? 'show' : ''"><svg class='<nil>' width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.999547 5.41459L5.24219 1.17195L9.48483 5.41459" stroke="white"/>
</svg></span></button><div x-show=popup_open x-cloak @click.outside="popup_open = false" class="lang-popup position-absolute"><a class="d-block w-100 lang-item" href="https://www.datadoghq.com/?lang_pref=en"><div class=lang-primary>English</div><div class=lang-secondary>English</div></a><a class="d-block w-100 lang-item" href="https://www.datadoghq.com/ja/?lang_pref=ja"><div class=lang-primary>日本語</div><div class=lang-secondary>Japanese</div></a><a class="d-block w-100 lang-item" href="https://www.datadoghq.com/ko/?lang_pref=ko"><div class=lang-primary>한국어</div><div class=lang-secondary>Korean</div></a></div></div></div><div class="order-1 order-lg-3 col-12 col-lg-2 mb-28 mb-lg-0"><div class="footer-menu d-flex align-items-center justify-content-center justify-content-lg-end h-100"><span class="d-flex align-items-center me-28 me-lg-2"><a class="d-flex align-items-center social-link" href=https://twitter.com/datadoghq aria-label="Twitter link"><i class=icon-twitter-x></i>
</a></span><span class="d-flex align-items-center me-28 me-lg-2"><a class="d-flex align-items-center social-link" href=https://www.instagram.com/datadoghq/ aria-label="Instagram link"><i class=icon-instagram></i>
</a></span><span class="d-flex align-items-center me-28 me-lg-2"><a class="d-flex align-items-center social-link" href=https://www.youtube.com/user/DatadogHQ aria-label="Youtube link"><i class=icon-youtube-tetra></i>
</a></span><span class="d-flex align-items-center"><a class="d-flex align-items-center social-link" href=https://www.linkedin.com/company/datadog aria-label="LinkedIn link"><i class=icon-linkedin-new></i></a></span></div></div><div class="order-2 order-lg-1 col-12 col-lg-8 mb-28 mb-lg-0"><div class="footer-menu d-flex align-items-center justify-content-center justify-content-lg-start h-100"><span class=copyright>&copy; Datadog 2026
</span><span class="d-flex align-items-center"><a class=d-inline-block href=https://www.datadoghq.com/legal/terms/>Terms</a>
<span>&nbsp;|&nbsp;
</span></span><span class="d-flex align-items-center"><a class=d-inline-block href=https://www.datadoghq.com/legal/privacy/>Privacy</a>
<span>&nbsp;|&nbsp;
</span></span><span class="d-flex align-items-center"><a class=d-inline-block href=https://www.datadoghq.com/legal/cookies/>Cookies</a></span></div></div></div></div></footer><div class='demo-request-modal modal modal-signup js-signup-demo dg' id=signupDemo tabindex=-1 role=dialog aria-labelledby=signupDemoLabel><div class=modal-dialog role=document><div class=modal-content><div class='modal-header align-items-center'><h6 class='flex-grow-1 pb-1'>Request a personalized demo with a Datadog engineer</h6><button aria-label=close type=button data-bs-dismiss=modal><span aria-hidden=true>&#215;</span></button></div><div class='modal-body js-modal-body pt-0'><script src=//lp.datadoghq.com/js/forms2/js/forms2.min.js></script><div class=marketo-form-wrapper data-nosnippet><form id=mktoForm_2029></form><div class="hidden tw-hidden" id=marketo-consent-checkbox-text>I'd like Datadog to share the latest news about Datadog services and related offerings with me by email or telephone. You may unsubscribe at any time by following the instructions in the communications received from Datadog.</div></div><script>var trackerName="corpProd";function observeFieldAddition(e){const t=e.getFormElem()[0];function n(e){e.forEach(e=>{e.type==="childList"&&e.addedNodes.length>0&&!["LABEL","BUTTON"].includes(e.target.tagName)&&e.addedNodes.forEach(e=>{Array.from(e.querySelectorAll("[style]")).concat(e).forEach(e=>{e.removeAttribute("style")}),Array.from(e.querySelectorAll(".mktoFieldWrap")).forEach(e=>{if(e.querySelector("label")){let t="";e.querySelector("input")?(t=e.querySelector("input").getAttribute("placeholder"),!t.includes("*")&&e.querySelector("input").classList.contains("mktoRequired")&&(t+="*")):e.querySelector("select")&&(t=e.querySelector("select").getAttribute("name"),!t.includes("*")&&e.querySelector("select").classList.contains("mktoRequired")&&(t+="*")),e.querySelector("label").textContent=t}})})})}const s=new MutationObserver(n);s.observe(t,{childList:!0,subtree:!0})}function replaceLabelWithPlaceholder(e){const t=e.getFormElem()[0],n=Array.from(t.querySelectorAll(".mktoFieldWrap"));n.forEach(e=>{if(e.querySelector("label")){let t="";if(e.querySelector("input")||e.querySelector("textarea")){const n=e.querySelector("input")||e.querySelector("textarea");console.log(n),t=n.getAttribute("placeholder"),!t.includes("*")&&n.classList.contains("mktoRequired")&&(t+="*")}else e.querySelector("select")&&(t=e.querySelector("select").getAttribute("name"),!t.includes("*")&&e.querySelector("select").classList.contains("mktoRequired")&&(t+="*"));t.toLowerCase().includes("country")&&(e.querySelector("select").querySelector("option").textContent.toLowerCase().includes("select")||(t=e.querySelector("select").querySelector("option").textContent)),e.querySelector("label").innerHTML=t}})}function replacePlaceholderWithLabel(e){const t=e.getFormElem()[0],n=Array.from(t.querySelectorAll(".mktoFieldWrap"));n.forEach(e=>{if(e.querySelector("label")){const t=e.querySelector("label").innerText.replace("*","");e.querySelector("input")?e.querySelector("input").setAttribute("placeholder",t):null,e.querySelector("input")?e.querySelector("label").innerText="":null}})}function destyleMktoForm(e){const t=e.getFormElem()[0],n=Array.from(t.querySelectorAll("[style]")).concat(t);n.forEach(function(e){e.removeAttribute("style")});const s=Array.from(document.styleSheets);s.forEach(function(e){t.contains(e.ownerNode)&&(e.disabled=!0)})}function addSpanToBtn(e){const t=e.getFormElem().find("button[type=submit]"),n=t.text();t.html(`<span>${n}</span>`)}function isPersonalEmail(e){const n=["@gmail.","@yahoo.","@hotmail.","@live.","@aol.","@outlook."];let t=!1;for(const s of n)if(e.indexOf(s)!==-1){t=!0;break}return t}MktoForms2.loadForm("//lp.datadoghq.com","875-UVY-685","2029",e=>{const t=document.querySelector("#mktoForm_2029");u(e),p(),c();const a={Title:["Student","Intern","test","free","없음","무직","무소속","직책 없음","현재 없음","특별한 것 없음","학생","학부생","대학원생l","고등학생","대학생","교육","강사","교수","학장","교사","인스트럭터","학자 / 연구자","튜터","교육자","연구자","연구원","박사","박사 학위","MBA 과정 학생","졸업생","学生","学部","無職","主婦","主夫","フリーランス","自営","個人","アルバイト","パート","フリー","無所属","a","店長","運転手","高校生","なし","オーナー","現業","介護","無し","ポスティング","ドライバー","運送","療養中","休職","生活保護","ケアスタッフ","派遣社員","none","NA","N/A","n/a","unknown","Sans-emploi","femme","chauffeur","chef","auxiliaire","unbekannt","kein titel","nichts","keine angabe","student","studentin","praktikant","praktikantin","arbeitslos","rentner","rentnerin","hausfrau","persönlich","angestellter","arbeitnehmer","selbstständig","individual","estudiante","estudante","studente","studentessa","alumno","aprendiz","tirocinante","stagista","disoccupato","desempleado","unemployed","jobless","paro","sans-emploi","sin empleo","nenhum","desconhecido","sem título","teste","nada","--","mr","mrs","ms","senhor","senhora","particular","privado","trabalhador","empregado","independente","Estudante","Autonomo","Autónomo","nessuno","sconosciuto","senza titolo","prova","niente","studente","studentessa","tirocinante","stagista","disoccupato","pensionato","pensionata","casalinga","casalingo"],Email:["appneta.com","betterstack.com","copperegg.com","coralogix.com","coscale.com","dashbird.io","Dataloop.io","dynatrace.com","epsagon.com","gwos.com","HoneyComb.io","humio.com","influxdata.com","influxdb.com","iopipe.com","kloudfuse.com","lacework.com","librato.com","lightstep.com","logdna.com","loggly.com","logicmonitor.com","Logz.io","lumigo.io","manageengine.com","netuitive.com","newrelic.com","observeinc.com","opstrace.com","papertrail.com","resolve.ai","ruxit.com","Scalyr.com","sciencelogic.com","scoutapp.com","Sematext.com","signalfx.com","signoz.io","solarwinds.com","splunk.com","stackstate.com","sumologic.com","draios.com","thundra.io","wavefront.com","whatap.io","zettalogs.com","quicksend.ch","isco.eu.org"]};function l(){const e=window.location.pathname.split("/").filter(e=>e),t=["ja","ko","es","fr","de","it","pt"];for(const n of e)if(t.includes(n))return n;return"en"}const i={en:{email:"Please register with a valid work email address.",title:"Please register with a valid work title."},ja:{email:"勤務先のメールアドレスで登録してください。",title:"役職名を入力してください。"},ko:{email:"유효한 회사 이메일 주소로 등록해 주세요.",title:"유효한 직함으로 등록해 주세요."},es:{email:"Regístrate con tu dirección de correo electrónico del trabajo.",title:"Regístrate con un cargo válido."},fr:{email:"Veuillez vous inscrire avec une adresse e-mail professionnelle valide.",title:"Veuillez vous inscrire avec un titre valide."},de:{email:"Bitte registrieren Sie sich mit Ihrer geschäftlichen E-Mail-Adresse.",title:"Bitte registrieren Sie sich mit einem gültigen Titel."},it:{email:"Registrati con il tuo indirizzo e-mail di lavoro.",title:"Registrati con un titolo valido."},pt:{email:"Registre-se com o seu endereço de e-mail profissional.",title:"Registre-se com um cargo válido."}},r=l(),n=i[r]||i.en;function o(){const e=document.getElementById("mkto-validation-error");e&&e.remove()}function s(e){o();const n=document.createElement("div");n.id="mkto-validation-error",n.className="mkto-validation-error",n.textContent=e,n.style.cssText="color: #d32f2f; font-size: 14px; margin-top: 8px; padding: 8px; background-color: #ffebee; border-radius: 4px; border-left: 4px solid #d32f2f;",t.parentNode.insertBefore(n,t.nextSibling)}function d(e){let t=!0;if(e.Email){const o=e.Email.toLowerCase(),i=a.Email.find(e=>o.includes(e.toLowerCase()));i&&(s(n.email),t=!1)}if(e.Title){const o=e.Title.toLowerCase().split(/\s+/),i=a.Title.find(e=>o.includes(e.toLowerCase()));i&&(s(n.title),t=!1)}return t}e.onValidate(function(){e.submittable(!0)}),e.onSubmit(function(){var t=e.vals();t.Email&&typeof analytics!="undefined"&&analytics.identify(t.Email,{email:t.Email});const o=["shop.com","fox.com","fox.to","ypf.com","msm.com","admin.com","fh.com","ypg.com","fox.tl","ropa.com","mom.com"];if(t.Email&&window.location.pathname.includes("/es/dg/webinars")&&o.includes(t.Email.split("@")[1]))return e.submittable(!1),!1;const i=["/event/bitsaisre-webinar-26-emea","/dg/webinars/platformstory-dust-2026","/dg/webinars/dashrecap-emea-2026","/events/datadog-day-ensek-july/","/events/f1-vip-event-with-datadog/","/events/datadog-gcp-handsonworkshop-stockholm/","/events/datadog-gcp-handsonworkshop-stockholm-mobile/","/events/datadog-live-warsaw/","/events/datadog-live-duesseldorf/","/events/bark-the-halls-end-of-summer-drinks-and-networking-party-with-datadog/","/es/events/guida-sicura-con-datadog/","/events/datadog-live-oslo","/events/porsche-driving-experience-hockenheim/","/events/datadog-live-manchester/","/partner/azure-observability/","/it/events/guida-sicura-con-datadog/","/events/datadog-live-johannesburg/","/es/events/f1-madrid-con-datadog-domingo/","/es/events/f1-madrid-con-datadog-sabado/","/es/events/0903-datadoglive-santiago/","/fr/dg/webinars/logs-france-2026/"],a=["gmail.com","hotmail.com","yahoo.com","outlook.com","inbox.com","mail.com","yahoo","hotmail","icloud.com","msn.com","nlrsd.org","holberton","efrei.net","yahoo.co.kr","naver.com","hanmail.net","daum.net","nate.com","dreamwiz.com","chol.com","empal.com","freechal.com","paran.com","lycos.co.kr","yahoo.co.jp","yahoo.ne.jp","docomo.ne.jp","dmail.docomo.ne.jp","ezweb.ne.jp","i.softbank.jp","outlook.jp","au.com","softbank.ne.jp","softbank.jp","vodafone.ne.jp","rakuten.jp","livedoor.com","excite.co.jp","infoseek.jp","goo.ne.jp","live.jp","outlook.fr","hotmail.fr","free.fr","yahoo.fr","live.fr","laposte.net","orange.fr","wanadoo.fr","sfr.fr","bbox.fr","numericable.fr","neuf.fr","club-internet.fr","web.de","gmx.de","gmx.net","freenet.de","t-online.de","yahoo.de","hotmail.de","outlook.de","hotmail.es","yahoo.es","outlook.es","terra.es","telefonica.net","sapo.pt","iol.pt","mail.pt","hotmail.pt","yahoo.pt","clix.pt","libero.it","virgilio.it","tiscali.it","alice.it","tin.it","yahoo.it","hotmail.it","outlook.it"];if(t.Email){const o=window.location.pathname.replace(/\/$/,""),r=i.some(e=>{const t=e.replace(/\/$/,"");return o===t}),c=t.Email.toLowerCase(),l=a.some(e=>c.includes(e.toLowerCase()));if(r&&l)return s(n.email),e.submittable(!1),!1}const r=d(t);return r?(e.submittable(!0),!0):(e.submittable(!1),!1)}),e.onSuccess(()=>{if(o(),window.ga&&ga(`${trackerName}.send`,"event","Marketo","Form Submit",window.location.pathname),window.dataLayer){let t={event:"gtm.marketoFormSubmit","gtm.elementId":"2029",formId:"2029",user_data:{address:{first_name:e.vals().FirstName?e.vals().FirstName:"",last_name:e.vals().LastName?e.vals().LastName:""}}};dataLayer.push(t)}return h(),!1});function u(){}function h(){m(!0)}function S(){}function _(){const n=t.querySelector(".mktoButtonRow"),s=t.querySelectorAll(".mktoHtmlText.mktoHasWidth"),o=Array.from(s).map(e=>e.closest(".mktoFormRow")).filter(e=>e!==null);let e=null;for(const t of o){const s=t.querySelector("span[data-sheets-value]");if(s&&s.getAttribute("data-sheets-value").includes("Privacy Policy")){e=t;break}const n=t.querySelector(".mktoHtmlText.mktoHasWidth");if(n){const s=n.querySelector('a[href*="datadoghq.com/legal/privacy"]'),o=n.querySelector('a[href*="datadoghq.com/legal/cookies"]'),i=n.querySelector('span[style*="font-size: 9px"]');if(s&&o&&i){e=t;break}}}e&&(n.after(e),e.classList.add("mt-2"))}function C(){const e=document.querySelector('a[href="https://www.datadoghq.com/legal/privacy/"'),t=document.querySelector('a[href="https://www.datadoghq.com/legal/cookies/"');e&&e.setAttribute("target","_blank"),t&&t.setAttribute("target","_blank")}function p(){const e=document.querySelectorAll('a[href="https://www.datadoghq.com/legal/privacy/"'),t=document.querySelectorAll('a[href="https://www.datadoghq.com/legal/cookies/"');e&&e.forEach(e=>{e.textContent||e.remove()}),t&&t.forEach(e=>{e.textContent||e.remove()})}function c(){const e=document.querySelectorAll("#mktoStyleLoaded");e.forEach(e=>{e.remove()})}function g(e){const s=window.innerWidth<768,n=document.createElement("div");n.classList.add("w-100"),n.innerHTML=e,t.classList.add("hidden"),t.classList.add("tw-hidden");const o=document.querySelector("#sign-up-header > h2");o&&o.classList.add("d-none"),t.parentNode.appendChild(n),!s&&t.parentNode.closest("section")?t.parentNode.closest("section").scrollIntoView():s&&t.parentNode.scrollIntoView()}function b(e){const t=document.getElementById("main-form-container");t.innerHTML=e,t.scrollIntoView()}function j(e,t){const n=document.querySelector(`#main-form-container--${t}`);n.innerHTML=e,n.parentNode.closest("section").scrollIntoView()}function y(e){const t=document.querySelector(".add-to-calendar");t.setAttribute("href",`${e}`)}function f(){if("2029"===3684){const n=e.getFormElem(),t=n.find(".mktoFormRow:nth-child(17)");if(!t||t[0].innerText.indexOf("Privacy Policy")<0)return;let s=n.find("button").closest(".mktoButtonRow");s[0].parentNode.insertBefore(t[0],s[0].nextSibling),t[0].style.paddingTop="20px"}}function w(){const i="",e=document.createElement("div"),s=document.createElement("input"),n=document.createElement("label");s.setAttribute("type","checkbox"),e.classList.add("pt-2"),e.classList.add("d-flex"),s.setAttribute("id","confirm-legal"),n.style.marginTop="-4px",n.style.marginLeft="7px",n.innerText=`${i}`,e.appendChild(s),e.appendChild(n),t.appendChild(e);const a=document.getElementById("confirm-legal"),o=t.querySelector(".mktoButton");o.disabled=!0,a.addEventListener("change",e=>{o.disabled=!e.target.checked})}function O(t){if(t)window.ga&&ga(`${trackerName}.send`,"event","Asset Download","Download",window.location.pathname);else{f();const t=e.getFormElem().find("button");if(t&&t[0].type==="submit"){t[0].dataset.eventCategory="Asset Download",t[0].dataset.eventAction="Downloaded",t[0].dataset.eventLabel="";const n=e.getId();t[0].classList.add("js-gtm-trigger-click")}}}function x(t){if(t){const t=e.getFormElem(),n=t.find('button[type="submit"]');n.append('<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=74631&conversionId=1516249&fmt=gif" />')}else{const t=e.getFormElem().find("button");t&&t[0].type==="submit"&&t[0].classList.add("js-gtm-trigger-click")}}function v(t){if(t){e.getFormElem().hide();const t=document.querySelectorAll(".col-12 > h4");t.length!==0&&t.forEach(e=>e.style.display="none")}}function E(){const s=document.querySelector(".js-add-calendar");e.getFormElem().hide();const n=document.querySelectorAll(".col-12 > h4");n.length!==0&&n.forEach(e=>e.style.display="none");const o="";s.href=o}function k(){e.getFormElem().hide();const n=document.querySelectorAll("#mktoForm_2029");n.length!==0&&n.forEach(e=>{e.after('<p class="text-center fw-semibold text-white pt-2 pt-lg-0">Thank you! We will follow up with you soon.</p>')})}function A(){let n="";n="Thank you! We will follow up with you soon.",e.getFormElem().hide();const o=".frame-wrapper",s=document.createElement("div");s.innerHTML=n,document.querySelector(o).append(s),document.getElementById("confirmform")?document.getElementById("confirmform").style.visibility="visible":null}function m(){e.getFormElem().hide(),document.querySelector(".js-modal-body").insertAdjacentHTML("beforeend",'<h4 class="text-center">Thank you! We will follow up with you soon.</h4>');const n=!!document.getElementById("signup-override-inline-thankyou");if(n){const t=document.getElementById("signup-override-inline-thankyou"),e=document.createElement("div");e.classList.add("w-100"),e.innerHTML="Thank you! We will follow up with you soon.",t.appendChild(e)}}function M(){let n="Thank you! We will follow up with you soon.";e.getFormElem().hide();const s=`<div id="confirmform" style="padding:15px;margin: 0 auto;"><p>${n}</p></div>`;s.append(".frame-wrapper"),document.getElementById("confirmform").style.visibility="visible",window.scrollTo(0,300)}function F(t){if(t)e.getFormElem().hide(),document.querySelector("h2").textContent="Unsubscribe Successful",document.getElementById("confirmform").style.visibility="visible";else{const e=sessionStorage.getItem("e");typeof e!="undefined"&&(document.querySelector("#Email").value=e),document.querySelector("#mktoForm_1").style.display="none"}}function T(){e.getFormElem().hide(),document.querySelector(".form-response").classList.remove("hidden")}function z(){const s=new URLSearchParams(window.location.search);let t="";const n=document.querySelector("input[name=burnerField3]");null&&n&&(t="%!s(<nil>)"+`= ${s.get(null)}`,n.value=t)}function D(e,t,n,s){const o=document.querySelector(`#mktoForm_${e}`),i=o.querySelector(t);if(s&&i&&i.textContent.indexOf(s)!==-1)o.insertBefore(i.closest(".mktoFormRow"),o.querySelector(n));else throw new Error("Could not move target element.")}})</script></div></div></div></div><div class="modal fade signup-modal" id=signup-modal><div class=modal-dialog><div class=modal-content><div class="modal-header text-center"><p class="modal-title text-center w-100">Start Your Free Datadog Trial Now</p><button aria-label=close type=button data-bs-dismiss=modal class=btn-close></button></div><div class=modal-body><iframe name=signUpIframe class="signup-iframe js-signup-frame w-100" width height=885 frameborder=0 title="Sign Up for Datadog"></iframe></div></div></div></div><script src=https://www.datadoghq.com/assets/signup-modal-demo.min.8b8fd9550de9c89d01455cfbbaf2a873fc99bdd702583545576e7614ea7d2429.js></script><script src=https://www.datadoghq.com/assets/alpine.min.9fb7fca9511674131f4a90d5aa06dbaf0fd1b7fdf5abc81053327ef29d736a0e.js></script><script src=https://www.datadoghq.com/assets/ungated.min.a4af69a942356c3a455476506834ef791065d4eee0988a3517d1a859fb10b83f.js></script><script src=https://www.datadoghq.com/assets/common.min.b4bcdf723d94c20ce405ac4c446c5a7785c8d0505cc2c63545ac1d657b3a734f.js></script><script>!function(e,t){if(!e.rdt){var s,o,n=e.rdt=function(){n.sendEvent?n.sendEvent.apply(n,arguments):n.callQueue.push(arguments)};n.callQueue=[],s=t.createElement("script"),s.src="https://www.redditstatic.com/ads/pixel.js",s.async=!0,o=t.getElementsByTagName("script")[0],o.parentNode.insertBefore(s,o)}}(window,document),rdt("init","t2_naasd"),rdt("track","PageVisit")</script><script src=https://www.datadoghq.com/assets/ane-popup-banner.js></script><script src=https://www.datadoghq.com/assets/alpine.min.9fb7fca9511674131f4a90d5aa06dbaf0fd1b7fdf5abc81053327ef29d736a0e.js></script><script src=https://www.datadoghq.com/assets/ungated.min.a4af69a942356c3a455476506834ef791065d4eee0988a3517d1a859fb10b83f.js></script><script src=https://www.datadoghq.com/assets/common.min.b4bcdf723d94c20ce405ac4c446c5a7785c8d0505cc2c63545ac1d657b3a734f.js></script><script>!function(e,t){if(!e.rdt){var s,o,n=e.rdt=function(){n.sendEvent?n.sendEvent.apply(n,arguments):n.callQueue.push(arguments)};n.callQueue=[],s=t.createElement("script"),s.src="https://www.redditstatic.com/ads/pixel.js",s.async=!0,o=t.getElementsByTagName("script")[0],o.parentNode.insertBefore(s,o)}}(window,document),rdt("init","t2_naasd"),rdt("track","PageVisit")</script><script src=https://www.datadoghq.com/assets/ane-popup-banner.js></script><script src=https://www.datadoghq.com/assets/pricing.min.6774f463f9873d951691139b55ba79d17fd47b400541477629db366278591a99.js></script></body></html>