[{"data":1,"prerenderedAt":993},["ShallowReactive",2],{"/blog/why-all-organizations-need-prometheus":3,"navigation-en-us":206,"banner-en-us":633,"footer-en-us":643,"blog-post-authors-en-us-Lee Matos":888,"blog-related-posts-en-us-why-all-organizations-need-prometheus":903,"blog-promotions-en-us":929,"next-steps-en-us":983},{"id":4,"title":5,"authors":6,"body":8,"category":185,"date":186,"description":187,"extension":188,"externalUrl":189,"faq":189,"featured":190,"heroImage":191,"meta":192,"navigation":159,"path":193,"seo":194,"slug":198,"stem":199,"tags":200,"template":204,"updatedDate":189,"__hash__":205},"blogPosts/en-us/blog/why-all-organizations-need-prometheus.md","Why Prometheus is for everyone",[7],"Lee Matos",{"type":9,"value":10,"toc":173},"minimark",[11,28,33,36,39,42,46,54,62,65,69,82,85,92,98,103,108,113,116,123,127,136,141,150,160,163,167,170],[12,13,14,15,21,22,27],"p",{},"It's no secret that here at GitLab, we hitched our wagon to ",[16,17,20],"a",{"href":18,"rel":19},"https://docs.gitlab.com/administration/monitoring/prometheus/#doc-nav",[],"Prometheus"," long ago. We've been\n",[16,23,26],{"href":24,"rel":25},"https://docs.gitlab.com/releases/",[],"shipping it with GitLab since 8.16",". Having said that,\neven within GitLab we weren't all using Prometheus. The Support Engineering team was\nvery much in the camp of \"We don't need this to troubleshoot customer problems.\" We were wrong;\nwe needed Prometheus all along, and here's why your organization should be using it too.",[29,30,32],"h2",{"id":31},"what-is-prometheus","What is Prometheus?",[12,34,35],{},"For a short answer, Prometheus is software that stores event data in real-time. But more specifically…",[12,37,38],{},"Prometheus is a powerful and free open-source software monitoring service that records real-time metrics and provides real-time alerts. It’s built with an HTTP pull model. Prometheus collects data performance metrics which you can view through an external dashboard tool (such as Grafana) or by directly connecting to Prometheus.",[12,40,41],{},"Soundcloud was the original developer of Prometheus but nowadays is continuously maintained by the Cloud Native Computing Foundation (CNCF). The cloud-native architecture of Prometheus has made it extremely popular as part of a modern technology stack.",[29,43,45],{"id":44},"prometheus-is-great-so-why-isnt-everyone-using-it-already","Prometheus is great, so why isn't everyone using it already?",[12,47,48,49,53],{},"I think GitLab customers fall into a few categories: You have the customer who wants to use GitLab\nbut can't or doesn't want to manage servers. They'll use ",[16,50,52],{"href":51},"/pricing/","GitLab.com","! By making that choice they can\nleverage the hard work of our Production team and reap the benefits of what Prometheus has to offer.",[12,55,56,57,61],{},"Then you have the customer who is ",[16,58,60],{"href":59},"/pricing/#self-managed","running their own simple GitLab deployment",", but they may\nnot know or appreciate the value of Prometheus metrics. The Support Engineering team was\nlike this too! We thought, \"We can use traditional tools. Just knowing about where logging is,\nknowing about the system, is enough to actually solve the problems that we see. Just having\nexperience is enough.\" Not so.",[12,63,64],{},"Then you have large, enterprise customers who are deploying GitLab clusters with multiple dozens of\nservers and a lot of moving parts. For them, Prometheus really shines because the complexity\nballoons, and once you move GitLab from a single server to three, or four, or 20, being able\nto see all of the metrics in one view makes a huge difference in time to resolving critical infrastructure issues.",[29,66,68],{"id":67},"how-we-saw-the-light-about-prometheus","How we saw the light about Prometheus",[12,70,71,72,76,77,81],{},"A large GitLab customer was experiencing a really strange, catastrophic failure scenario, and\nthe problem was proving evasive to the support team. Even after days of troubleshooting we couldn't\nfind what we were looking for, so we called in Jacob from our\n",[16,73,75],{"href":74},"/blog/the-road-to-gitaly-1-0/","Gitaly"," team because it looked like Gitaly was at the\ncore of the problem. We had been using Gitaly on GitLab.com for about six months at that point\nand he had never seen it behave this way before. It looked like Gitaly was accessing Git data,\nbut just ",[78,79,80],"em",{},"extremely slow",", and it would spread across the cluster one server at a time. Jacob\nand I speculated and made some Gitaly dashboards, and while that was a good moment of cross-team\ncollaboration, he was stumped.",[12,83,84],{},"Most of the time when we're debugging GitLab, it's clear to pinpoint the root of the problem.\nBut in this case, it was a catastrophic failure across the entire cluster that was a ticking timebomb.\nWhen we'd see the indicators we'd effectively have 15-35 minutes before the entire fleet was down.\nThis customer actually had Prometheus on their roadmap but hadn't deployed it yet, so when\nthe failure happened it was top of our list of things to deploy:",[12,86,87,91],{},[88,89,90],"strong",{},"Support",": We should focus on trying to understand why this host is affected.",[12,93,94,97],{},[88,95,96],{},"Production",": If we get better observability with Prometheus we'll move faster.",[12,99,100,102],{},[88,101,90],{},": I'm worried this is a distraction! We don't have much time.",[12,104,105,107],{},[88,106,96],{},": Watch and learn. Watch and learn.",[12,109,110],{},[78,111,112],{},"(Cue dramatic montage of hackers with GitLab stickers on their laptops feverishly typing under duress)",[12,114,115],{},"Once Prometheus was in place, we called in the Production team. They run one of the largest\nGitLab instances: GitLab.com. We exported their dashboard and gave it to the customer, so\nwithin minutes they had a GitLab production-scale dashboard that was all of the things that\nour production engineers use. Now, we could leverage the wealth of knowledge of our Prometheus\nexperts, as it's a familiar interface and they know exactly what they're looking at.",[12,117,118,119,122],{},"With that as a starting point we started querying and slicing data, and dashboards, which let\nus build a couple of different facets that let us view the data and come to some conclusions.\n\"Okay, it looks like once a host becomes 'tainted,' all Git-level operations spike and ",[78,120,121],{},"HALT",".\nNow we can finally ask the question, why?\" And then, when we asked that, we saw that it was\na problem with Amazon's EFS file system. We had hit some upper boundary of EFS access and,\nhaving identified it, we were able to fix it by moving those specific files out of EFS. After we\nmade that change it was easy to use Prometheus and Grafana to verify that the state was sound\nand everything was working as expected afterwards, without even lifting a finger. We just looked\nat the dashboard in place. So while the customer had intended to deploy Prometheus later this\nyear, now, in this emergency situation, Prometheus definitely saved the day and is a huge part\nof keeping their GitLab infrastructure healthy. Without it we wouldn't be nearly as confident\nor comfortable in our solution.",[29,124,126],{"id":125},"prometheues-has-opened-up-a-whole-world-of-possibilities","Prometheues has opened up a whole world of possibilities.",[12,128,129,130,135],{},"We have another large client that's on an older version of GitLab without Prometheus. We're\nworking to debug things there and while we're able to do it, it's slower going. It requires a lot\nmore manual effort to coalesce the data and get it in a form we can use. It often takes about\n35-40 minutes to get the data, slicing with grep, AWK, and friends and at least one man page\nto look up syntax. Whereas, with Prometheus and Grafana, we'd be able to just access and view\nthe data, query it, and affect it within minutes. We already have a lot of ",[16,131,134],{"href":132,"rel":133},"https://docs.gitlab.com/administration/monitoring/",[],"built-in monitoring capabilities",". GitLab is a complex\nsystem built of various open source sub-systems, and we're monitoring all of them with Prometheus.\nYou can too.",[137,138,140],"h3",{"id":139},"everyone-should-be-using-our-gitlabcom-dashboard","Everyone should be using our GitLab.com dashboard",[12,142,143,144,149],{},"As I said earlier, in our intense, catastrophic scenario we gave the customer our GitLab.com\ndashboard. Any customer can use this dashboard as a template! You literally can go to ",[16,145,148],{"href":146,"rel":147},"https://dashboards.gitlab.com",[],"dashboards.gitlab.com",", click \"export,\" get the dashboard, run your instance, then click \"import.\" It will show up, and\nyou just need to tweak the name so that it's not defaulting to our GitLab Production cluster.\nThen Prometheus just fills in the data.",[151,152],"iframe",{"src":153,"width":154,"height":155,"frameBorder":156,"className":157,"allowFullScreen":159},"https://giphy.com/embed/12NUbkX6p4xOO4",480,440,"0",[158],"giphy-embed",true,[12,161,162],{},"We're trying to standardize around using the dashboards here, so that while there are differences\nand nuances in the deployments etc., we're speaking a common language, and have a common\nmeeting point for GitLab engineers across teams to monitor and talk GitLab performance.",[29,164,166],{"id":165},"are-you-convinced-about-prometheues-yet","Are you convinced about Prometheues yet?",[12,168,169],{},"We're now actively training our support team on Prometheus. And it's likely that other organizations\nprobably have the same thing happening – where another group could be impacting or helping,\nbut they're not collaborating, so they can't see where or how they can help one another. We've\nseen the light! So, we're training our team on Prometheus, and it's something that we want\nto make sure that everybody can make use of.",[12,171,172],{},"Many customers think they don't need Prometheus and are reluctant to use it because it adds\noverhead; you have to configure it and set it up, and it may require a bit of finessing. GitLab\nis trying to make that even easier, but right now when you're building a bespoke deployment,\nit requires a bit of time, and you may not think time invested is worth it. And I'm here to say,\nit is, get it now! In fact, it's already there. You just need to turn it on! I'm advocating that all\nlarge, customer deployments over 500 users have Prometheus running by 2019. Turn it on and\nthen we'll all reap the rewards.",{"title":174,"searchDepth":175,"depth":175,"links":176},"",2,[177,178,179,180,184],{"id":31,"depth":175,"text":32},{"id":44,"depth":175,"text":45},{"id":67,"depth":175,"text":68},{"id":125,"depth":175,"text":126,"children":181},[182],{"id":139,"depth":183,"text":140},3,{"id":165,"depth":175,"text":166},"engineering","2018-09-27","You think you don't need Prometheus – I'm here to tell you why you're wrong. Learn why GitLab uses Prometheus, and why your organization should be using it too!","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678778/Blog/Hero%20Images/monitoring-cover.png",{},"/en-us/blog/why-all-organizations-need-prometheus",{"title":5,"description":187,"ogTitle":5,"ogDescription":187,"noIndex":190,"ogImage":191,"ogUrl":195,"ogSiteName":196,"ogType":197,"canonicalUrls":195},"https://about.gitlab.com/blog/why-all-organizations-need-prometheus","https://about.gitlab.com","article","why-all-organizations-need-prometheus","en-us/blog/why-all-organizations-need-prometheus",[201,202,203],"features","inside GitLab","performance","BlogPost","RKgZVOhLUXX8myd4xRQ_YKhYEzjm13Xv4nF_7q_FyKo",{"logo":207,"freeTrial":212,"sales":217,"login":222,"items":227,"search":553,"minimal":584,"duo":603,"switchNav":612,"pricingDeployment":623},{"config":208},{"href":209,"dataGaName":210,"dataGaLocation":211},"/","gitlab logo","header",{"text":213,"config":214},"Get free trial",{"href":215,"dataGaName":216,"dataGaLocation":211},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":218,"config":219},"Request a demo",{"href":220,"dataGaName":221,"dataGaLocation":211},"/sales/?contact-topic=request-demo","sales",{"text":223,"config":224},"Sign in",{"href":225,"dataGaName":226,"dataGaLocation":211},"https://gitlab.com/users/sign_in/","sign in",[228,257,357,361,475,531],{"text":229,"config":230,"menu":232},"Platform",{"dataNavLevelOne":231},"platform",{"type":233,"columns":234},"cards",[235,241,249],{"title":229,"description":236,"link":237},"The intelligent orchestration platform for DevSecOps",{"text":238,"config":239},"Explore our Platform",{"href":240,"dataGaName":231,"dataGaLocation":211},"/platform/",{"title":242,"description":243,"link":244},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":245,"config":246},"Meet GitLab Duo",{"href":247,"dataGaName":248,"dataGaLocation":211},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":250,"description":251,"link":252},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":253,"config":254},"Learn more",{"href":255,"dataGaName":256,"dataGaLocation":211},"/why-gitlab/","why gitlab",{"text":258,"left":159,"config":259,"menu":261},"Product",{"dataNavLevelOne":260},"solutions",{"type":262,"link":263,"columns":267,"feature":336},"lists",{"text":264,"config":265},"View all Solutions",{"href":266,"dataGaName":260,"dataGaLocation":211},"/solutions/",[268,292,315],{"title":269,"description":270,"link":271,"items":276},"Automation","CI/CD and automation to accelerate deployment",{"config":272},{"icon":273,"href":274,"dataGaName":275,"dataGaLocation":211},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[277,281,284,288],{"text":278,"config":279},"CI/CD",{"href":280,"dataGaLocation":211,"dataGaName":278},"/solutions/continuous-integration/",{"text":242,"config":282},{"href":247,"dataGaLocation":211,"dataGaName":283},"gitlab duo agent platform - product menu",{"text":285,"config":286},"Source Code Management",{"href":287,"dataGaLocation":211,"dataGaName":285},"/solutions/source-code-management/",{"text":289,"config":290},"Automated Software Delivery",{"href":274,"dataGaLocation":211,"dataGaName":291},"Automated software delivery",{"title":293,"description":294,"link":295,"items":300},"Security","Deliver code faster without compromising security",{"config":296},{"href":297,"dataGaName":298,"dataGaLocation":211,"icon":299},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[301,305,310],{"text":302,"config":303},"Application Security Testing",{"href":297,"dataGaName":304,"dataGaLocation":211},"Application security testing",{"text":306,"config":307},"Software Supply Chain Security",{"href":308,"dataGaLocation":211,"dataGaName":309},"/solutions/supply-chain/","Software supply chain security",{"text":311,"config":312},"Software Compliance",{"href":313,"dataGaName":314,"dataGaLocation":211},"/solutions/software-compliance/","software compliance",{"title":316,"link":317,"items":322},"Measurement",{"config":318},{"icon":319,"href":320,"dataGaName":321,"dataGaLocation":211},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[323,327,331],{"text":324,"config":325},"Visibility & Measurement",{"href":320,"dataGaLocation":211,"dataGaName":326},"Visibility and Measurement",{"text":328,"config":329},"Value Stream Management",{"href":330,"dataGaLocation":211,"dataGaName":328},"/solutions/value-stream-management/",{"text":332,"config":333},"Analytics & Insights",{"href":334,"dataGaLocation":211,"dataGaName":335},"/solutions/analytics-and-insights/","Analytics and insights",{"title":337,"type":262,"items":338},"GitLab for",[339,345,351],{"text":340,"config":341},"Enterprise",{"icon":342,"href":343,"dataGaLocation":211,"dataGaName":344},"Building","/enterprise/","enterprise",{"text":346,"config":347},"Small Business",{"icon":348,"href":349,"dataGaLocation":211,"dataGaName":350},"Work","/small-business/","small business",{"text":352,"config":353},"Public Sector",{"icon":354,"href":355,"dataGaLocation":211,"dataGaName":356},"Organization","/solutions/public-sector/","public sector",{"text":358,"config":359},"Pricing",{"href":51,"dataGaName":360,"dataGaLocation":211,"dataNavLevelOne":360},"pricing",{"text":362,"config":363,"menu":365},"Resources",{"dataNavLevelOne":364},"resources",{"type":262,"link":366,"columns":370,"feature":464},{"text":367,"config":368},"View all resources",{"href":369,"dataGaName":364,"dataGaLocation":211},"/resources/",[371,404,431],{"title":372,"items":373},"Getting started",[374,379,384,389,394,399],{"text":375,"config":376},"Install",{"href":377,"dataGaName":378,"dataGaLocation":211},"/install/","install",{"text":380,"config":381},"Quick start guides",{"href":382,"dataGaName":383,"dataGaLocation":211},"/get-started/","quick setup checklists",{"text":385,"config":386},"Learn",{"href":387,"dataGaLocation":211,"dataGaName":388},"https://university.gitlab.com/","learn",{"text":390,"config":391},"Product documentation",{"href":392,"dataGaName":393,"dataGaLocation":211},"https://docs.gitlab.com/","product documentation",{"text":395,"config":396},"Best practice videos",{"href":397,"dataGaName":398,"dataGaLocation":211},"/getting-started-videos/","best practice videos",{"text":400,"config":401},"Integrations",{"href":402,"dataGaName":403,"dataGaLocation":211},"/integrations/","integrations",{"title":405,"items":406},"Discover",[407,412,417,422,426],{"text":408,"config":409},"Customer success stories",{"href":410,"dataGaName":411,"dataGaLocation":211},"/customers/","customer success stories",{"text":413,"config":414},"Blog",{"href":415,"dataGaName":416,"dataGaLocation":211},"/blog/","blog",{"text":418,"config":419},"Demo Hub",{"href":420,"dataGaName":421,"dataGaLocation":211},"/demo-hub/","demo hub",{"text":423,"config":424},"The Source",{"href":425,"dataGaName":416,"dataGaLocation":211},"/the-source/",{"text":427,"config":428},"Remote",{"href":429,"dataGaName":430,"dataGaLocation":211},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":432,"items":433},"Connect",[434,439,444,449,454,459],{"text":435,"config":436},"GitLab Services",{"href":437,"dataGaName":438,"dataGaLocation":211},"/services/","services",{"text":440,"config":441},"Contribute",{"href":442,"dataGaName":443,"dataGaLocation":211},"https://contributors.gitlab.com","contribute",{"text":445,"config":446},"Community",{"href":447,"dataGaName":448,"dataGaLocation":211},"/community/","community",{"text":450,"config":451},"Forum",{"href":452,"dataGaName":453,"dataGaLocation":211},"https://forum.gitlab.com/","forum",{"text":455,"config":456},"Events",{"href":457,"dataGaName":458,"dataGaLocation":211},"/events/","events",{"text":460,"config":461},"Partners",{"href":462,"dataGaName":463,"dataGaLocation":211},"/partners/","partners",{"config":465,"title":468,"text":469,"link":470},{"background":466,"textColor":467},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":471,"config":472},"Read the latest",{"href":473,"dataGaName":474,"dataGaLocation":211},"/whats-new/","whats new",{"text":476,"config":477,"menu":479},"Company",{"dataNavLevelOne":478},"company",{"type":262,"columns":480},[481],{"items":482},[483,488,494,496,501,506,511,516,521,526],{"text":484,"config":485},"About",{"href":486,"dataGaName":487,"dataGaLocation":211},"/company/","about",{"text":489,"config":490,"footerGa":493},"Jobs",{"href":491,"dataGaName":492,"dataGaLocation":211},"/jobs/","jobs",{"dataGaName":492},{"text":455,"config":495},{"href":457,"dataGaName":458,"dataGaLocation":211},{"text":497,"config":498},"Leadership",{"href":499,"dataGaName":500,"dataGaLocation":211},"/company/team/e-group/","leadership",{"text":502,"config":503},"Handbook",{"href":504,"dataGaName":505,"dataGaLocation":211},"https://handbook.gitlab.com/","handbook",{"text":507,"config":508},"Investor relations",{"href":509,"dataGaName":510,"dataGaLocation":211},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":512,"config":513},"Trust Center",{"href":514,"dataGaName":515,"dataGaLocation":211},"/security/","trust center",{"text":517,"config":518},"AI Transparency Center",{"href":519,"dataGaName":520,"dataGaLocation":211},"/ai-transparency-center/","ai transparency center",{"text":522,"config":523},"Newsletter",{"href":524,"dataGaName":525,"dataGaLocation":211},"/company/contact/#contact-forms","newsletter",{"text":527,"config":528},"Press",{"href":529,"dataGaName":530,"dataGaLocation":211},"/press/","press",{"text":532,"config":533,"menu":534},"Contact us",{"dataNavLevelOne":478},{"type":262,"columns":535},[536],{"items":537},[538,543,548],{"text":539,"config":540},"Talk to sales",{"href":541,"dataGaName":542,"dataGaLocation":211},"/sales/","talk to sales",{"text":544,"config":545},"Support portal",{"href":546,"dataGaName":547,"dataGaLocation":211},"https://support.gitlab.com/hc/en-us","support portal",{"text":549,"config":550},"Customer portal",{"href":551,"dataGaName":552,"dataGaLocation":211},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":554,"login":555,"suggestions":562},"Close",{"text":556,"link":557},"To search repositories and projects, login to",{"text":558,"config":559},"gitlab.com",{"href":225,"dataGaName":560,"dataGaLocation":561},"search login","search",{"text":563,"default":564},"Suggestions",[565,567,571,573,577,581],{"text":242,"config":566},{"href":247,"dataGaName":242,"dataGaLocation":561},{"text":568,"config":569},"Code Suggestions (AI)",{"href":570,"dataGaName":568,"dataGaLocation":561},"/solutions/code-suggestions/",{"text":278,"config":572},{"href":280,"dataGaName":278,"dataGaLocation":561},{"text":574,"config":575},"GitLab on AWS",{"href":576,"dataGaName":574,"dataGaLocation":561},"/partners/technology-partners/aws/",{"text":578,"config":579},"GitLab on Google Cloud",{"href":580,"dataGaName":578,"dataGaLocation":561},"/partners/technology-partners/google-cloud-platform/",{"text":582,"config":583},"Why GitLab?",{"href":255,"dataGaName":582,"dataGaLocation":561},{"freeTrial":585,"mobileIcon":590,"desktopIcon":595,"secondaryButton":598},{"text":586,"config":587},"Start free trial",{"href":588,"dataGaName":216,"dataGaLocation":589},"https://gitlab.com/-/trials/new/","nav",{"altText":591,"config":592},"Gitlab Icon",{"src":593,"dataGaName":594,"dataGaLocation":589},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":591,"config":596},{"src":597,"dataGaName":594,"dataGaLocation":589},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":599,"config":600},"Get Started",{"href":601,"dataGaName":602,"dataGaLocation":589},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":604,"mobileIcon":608,"desktopIcon":610},{"text":605,"config":606},"Learn more about GitLab Duo",{"href":247,"dataGaName":607,"dataGaLocation":589},"gitlab duo",{"altText":591,"config":609},{"src":593,"dataGaName":594,"dataGaLocation":589},{"altText":591,"config":611},{"src":597,"dataGaName":594,"dataGaLocation":589},{"button":613,"mobileIcon":618,"desktopIcon":620},{"text":614,"config":615},"/switch",{"href":616,"dataGaName":617,"dataGaLocation":589},"#contact","switch",{"altText":591,"config":619},{"src":593,"dataGaName":594,"dataGaLocation":589},{"altText":591,"config":621},{"src":622,"dataGaName":594,"dataGaLocation":589},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":624,"mobileIcon":629,"desktopIcon":631},{"text":625,"config":626},"Back to pricing",{"href":51,"dataGaName":627,"dataGaLocation":589,"icon":628},"back to pricing","GoBack",{"altText":591,"config":630},{"src":593,"dataGaName":594,"dataGaLocation":589},{"altText":591,"config":632},{"src":597,"dataGaName":594,"dataGaLocation":589},{"title":634,"titleMobile":635,"button":636,"config":641},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":253,"config":637},{"href":638,"dataGaName":639,"dataGaLocation":640},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":642,"disabled":190},"release",{"data":644},{"text":645,"source":646,"edit":652,"contribute":657,"config":662,"items":667,"minimal":877},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":647,"config":648},"View page source",{"href":649,"dataGaName":650,"dataGaLocation":651},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":653,"config":654},"Edit this page",{"href":655,"dataGaName":656,"dataGaLocation":651},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":658,"config":659},"Please contribute",{"href":660,"dataGaName":661,"dataGaLocation":651},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":663,"facebook":664,"youtube":665,"linkedin":666},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[668,715,769,813,845],{"title":358,"links":669,"subMenu":684},[670,674,679],{"text":671,"config":672},"View plans",{"href":51,"dataGaName":673,"dataGaLocation":651},"view plans",{"text":675,"config":676},"Why Premium?",{"href":677,"dataGaName":678,"dataGaLocation":651},"/pricing/premium/","why premium",{"text":680,"config":681},"Why Ultimate?",{"href":682,"dataGaName":683,"dataGaLocation":651},"/pricing/ultimate/","why ultimate",[685],{"title":686,"links":687},"Contact Us",[688,691,693,695,700,705,710],{"text":689,"config":690},"Contact sales",{"href":541,"dataGaName":221,"dataGaLocation":651},{"text":544,"config":692},{"href":546,"dataGaName":547,"dataGaLocation":651},{"text":549,"config":694},{"href":551,"dataGaName":552,"dataGaLocation":651},{"text":696,"config":697},"Status",{"href":698,"dataGaName":699,"dataGaLocation":651},"https://status.gitlab.com/","status",{"text":701,"config":702},"Terms of use",{"href":703,"dataGaName":704,"dataGaLocation":651},"/terms/","terms of use",{"text":706,"config":707},"Privacy statement",{"href":708,"dataGaName":709,"dataGaLocation":651},"/privacy/","privacy statement",{"text":711,"config":712},"Cookie preferences",{"dataGaName":713,"dataGaLocation":651,"id":714,"isOneTrustButton":159},"cookie preferences","ot-sdk-btn",{"title":258,"links":716,"subMenu":725},[717,721],{"text":718,"config":719},"DevSecOps platform",{"href":240,"dataGaName":720,"dataGaLocation":651},"devsecops platform",{"text":722,"config":723},"AI-Assisted Development",{"href":247,"dataGaName":724,"dataGaLocation":651},"ai-assisted development",[726],{"title":727,"links":728},"Topics",[729,734,739,744,749,754,759,764],{"text":730,"config":731},"CICD",{"href":732,"dataGaName":733,"dataGaLocation":651},"/topics/ci-cd/","cicd",{"text":735,"config":736},"GitOps",{"href":737,"dataGaName":738,"dataGaLocation":651},"/topics/gitops/","gitops",{"text":740,"config":741},"DevOps",{"href":742,"dataGaName":743,"dataGaLocation":651},"/topics/devops/","devops",{"text":745,"config":746},"Version Control",{"href":747,"dataGaName":748,"dataGaLocation":651},"/topics/version-control/","version control",{"text":750,"config":751},"DevSecOps",{"href":752,"dataGaName":753,"dataGaLocation":651},"/topics/devsecops/","devsecops",{"text":755,"config":756},"Cloud Native",{"href":757,"dataGaName":758,"dataGaLocation":651},"/topics/cloud-native/","cloud native",{"text":760,"config":761},"AI for Coding",{"href":762,"dataGaName":763,"dataGaLocation":651},"/topics/devops/ai-for-coding/","ai for coding",{"text":765,"config":766},"Agentic AI",{"href":767,"dataGaName":768,"dataGaLocation":651},"/topics/agentic-ai/","agentic ai",{"title":770,"links":771},"Solutions",[772,774,776,781,785,788,792,795,797,800,803,808],{"text":302,"config":773},{"href":297,"dataGaName":302,"dataGaLocation":651},{"text":291,"config":775},{"href":274,"dataGaName":275,"dataGaLocation":651},{"text":777,"config":778},"Agile development",{"href":779,"dataGaName":780,"dataGaLocation":651},"/solutions/agile-delivery/","agile delivery",{"text":782,"config":783},"SCM",{"href":287,"dataGaName":784,"dataGaLocation":651},"source code management",{"text":730,"config":786},{"href":280,"dataGaName":787,"dataGaLocation":651},"continuous integration & delivery",{"text":789,"config":790},"Value stream management",{"href":330,"dataGaName":791,"dataGaLocation":651},"value stream management",{"text":735,"config":793},{"href":794,"dataGaName":738,"dataGaLocation":651},"/solutions/gitops/",{"text":340,"config":796},{"href":343,"dataGaName":344,"dataGaLocation":651},{"text":798,"config":799},"Small business",{"href":349,"dataGaName":350,"dataGaLocation":651},{"text":801,"config":802},"Public sector",{"href":355,"dataGaName":356,"dataGaLocation":651},{"text":804,"config":805},"Education",{"href":806,"dataGaName":807,"dataGaLocation":651},"/solutions/education/","education",{"text":809,"config":810},"Financial services",{"href":811,"dataGaName":812,"dataGaLocation":651},"/solutions/finance/","financial services",{"title":362,"links":814},[815,817,819,821,824,826,829,831,833,835,837,839,841,843],{"text":375,"config":816},{"href":377,"dataGaName":378,"dataGaLocation":651},{"text":380,"config":818},{"href":382,"dataGaName":383,"dataGaLocation":651},{"text":385,"config":820},{"href":387,"dataGaName":388,"dataGaLocation":651},{"text":390,"config":822},{"href":392,"dataGaName":823,"dataGaLocation":651},"docs",{"text":413,"config":825},{"href":415,"dataGaName":416,"dataGaLocation":651},{"text":827,"config":828},"What's new",{"href":473,"dataGaName":474,"dataGaLocation":651},{"text":408,"config":830},{"href":410,"dataGaName":411,"dataGaLocation":651},{"text":427,"config":832},{"href":429,"dataGaName":430,"dataGaLocation":651},{"text":435,"config":834},{"href":437,"dataGaName":438,"dataGaLocation":651},{"text":440,"config":836},{"href":442,"dataGaName":443,"dataGaLocation":651},{"text":445,"config":838},{"href":447,"dataGaName":448,"dataGaLocation":651},{"text":450,"config":840},{"href":452,"dataGaName":453,"dataGaLocation":651},{"text":455,"config":842},{"href":457,"dataGaName":458,"dataGaLocation":651},{"text":460,"config":844},{"href":462,"dataGaName":463,"dataGaLocation":651},{"title":476,"links":846},[847,849,851,853,855,857,861,866,868,870,872],{"text":484,"config":848},{"href":486,"dataGaName":478,"dataGaLocation":651},{"text":489,"config":850},{"href":491,"dataGaName":492,"dataGaLocation":651},{"text":497,"config":852},{"href":499,"dataGaName":500,"dataGaLocation":651},{"text":502,"config":854},{"href":504,"dataGaName":505,"dataGaLocation":651},{"text":507,"config":856},{"href":509,"dataGaName":510,"dataGaLocation":651},{"text":858,"config":859},"Sustainability",{"href":860,"dataGaName":858,"dataGaLocation":651},"/sustainability/",{"text":862,"config":863},"Diversity, inclusion and belonging (DIB)",{"href":864,"dataGaName":865,"dataGaLocation":651},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":512,"config":867},{"href":514,"dataGaName":515,"dataGaLocation":651},{"text":522,"config":869},{"href":524,"dataGaName":525,"dataGaLocation":651},{"text":527,"config":871},{"href":529,"dataGaName":530,"dataGaLocation":651},{"text":873,"config":874},"Modern Slavery Transparency Statement",{"href":875,"dataGaName":876,"dataGaLocation":651},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":878},[879,882,885],{"text":880,"config":881},"Terms",{"href":703,"dataGaName":704,"dataGaLocation":651},{"text":883,"config":884},"Cookies",{"dataGaName":713,"dataGaLocation":651,"id":714,"isOneTrustButton":159},{"text":886,"config":887},"Privacy",{"href":708,"dataGaName":709,"dataGaLocation":651},[889],{"id":890,"title":7,"body":189,"config":891,"content":893,"description":189,"extension":897,"meta":898,"navigation":159,"path":899,"seo":900,"stem":901,"__hash__":902},"blogAuthors/en-us/blog/authors/lee-matos.yml",{"template":892},"BlogAuthor",{"name":7,"config":894},{"headshot":895,"ctfId":896},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670430/Blog/Author%20Headshots/lbot-headshot.jpg","lbot","yml",{},"/en-us/blog/authors/lee-matos",{},"en-us/blog/authors/lee-matos","pr5sqICzd0jbCWXsR8dQVKu1l-sqXaCQ3w0uTPizr54",[904,913,921],{"title":905,"description":906,"heroImage":907,"category":185,"date":908,"authors":909,"slug":912,"externalUrl":189},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[910,911],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":914,"description":915,"heroImage":916,"category":185,"date":917,"authors":918,"slug":920,"externalUrl":189},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[919],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":922,"description":923,"heroImage":924,"category":185,"date":925,"authors":926,"slug":928,"externalUrl":189},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[927],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":930},[931,945,957,969],{"id":932,"categories":933,"header":935,"text":936,"button":937,"image":942},"ai-modernization",[934],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":938,"config":939},"Get your AI maturity score",{"href":940,"dataGaName":941,"dataGaLocation":416},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":943},{"src":944},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":946,"categories":947,"header":949,"text":936,"button":950,"image":954},"devops-modernization",[948,753],"product","Are you just managing tools or shipping innovation?",{"text":951,"config":952},"Get your DevOps maturity score",{"href":953,"dataGaName":941,"dataGaLocation":416},"/assessments/devops-modernization-assessment/",{"config":955},{"src":956},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":958,"categories":959,"header":961,"text":936,"button":962,"image":966},"security-modernization",[960],"security","Are you trading speed for security?",{"text":963,"config":964},"Get your security maturity score",{"href":965,"dataGaName":941,"dataGaLocation":416},"/assessments/security-modernization-assessment/",{"config":967},{"src":968},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":970,"paths":971,"header":974,"text":975,"button":976,"image":981},"github-azure-migration",[972,973],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":977,"config":978},"See how GitLab compares to GitHub",{"href":979,"dataGaName":980,"dataGaLocation":416},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":982},{"src":956},{"header":984,"blurb":985,"button":986,"secondaryButton":991},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":987,"config":988},"Get your free trial",{"href":989,"dataGaName":216,"dataGaLocation":990},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":689,"config":992},{"href":541,"dataGaName":221,"dataGaLocation":990},1786803756535]