[{"data":1,"prerenderedAt":1009},["ShallowReactive",2],{"/blog/gitlab-top-devops-tooling-metrics-and-targets":3,"navigation-en-us":222,"banner-en-us":650,"footer-en-us":660,"blog-post-authors-en-us-Mek Stittri":904,"blog-related-posts-en-us-gitlab-top-devops-tooling-metrics-and-targets":919,"blog-promotions-en-us":945,"next-steps-en-us":999},{"id":4,"title":5,"authors":6,"body":8,"category":200,"date":201,"description":202,"extension":203,"externalUrl":204,"faq":204,"featured":205,"heroImage":206,"meta":207,"navigation":208,"path":209,"seo":210,"slug":214,"stem":215,"tags":216,"template":220,"updatedDate":204,"__hash__":221},"blogPosts/en-us/blog/gitlab-top-devops-tooling-metrics-and-targets.md","The top DevOps tooling metrics and targets at GitLab",[7],"Mek Stittri",{"type":9,"value":10,"toc":188},"minimark",[11,22,27,36,45,51,55,64,73,79,83,86,95,101,105,108,116,121,125,128,137,142,146,149,152,158,162,165,172,177,181],[12,13,14,15,21],"p",{},"A successful DevOps practice relies heavily on metrics. Here at GitLab, we use seven key DevOps metrics to measure engineering efficiency and productivity.  Like many teams, we use industry standard metrics, but in some cases, we approach this data with a unique GitLab point of view. Here’s the first in a multipart look at the DevOps metrics we at GitLab think are most critical for success. Compare your metrics and results with ours, and ",[16,17,20],"a",{"href":18,"rel":19},"https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/13202",[],"let’s get a conversation started",".",[23,24,26],"h2",{"id":25},"master-pipeline-stability","Master pipeline stability",[12,28,29,30,35],{},"It’s important to be able to measure the stability of the GitLab project’s master branch pipeline. This metric tells us how stable the main branch is, and ensures engineers are checking out code that’s in good shape. ",[16,31,34],{"href":32,"rel":33},"https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/195",[],"Merge trains"," are key to this effort.",[12,37,38,39,44],{},"Our target percentage for ",[16,40,43],{"href":41,"rel":42},"https://handbook.gitlab.com/handbook/engineering/performance/#master-pipeline-stability",[],"master pipeline stability"," is above 95%.",[12,46,47],{},[48,49],"img",{"alt":43,"src":50},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398195/blog/Content%20Images/dometrics1.png",[23,52,54],{"id":53},"review-app-deployment-success-rate","Review app deployment success rate",[12,56,57,58,63],{},"At GitLab we take ",[16,59,62],{"href":60,"rel":61},"https://docs.gitlab.com/ci/review_apps/",[],"review apps"," seriously.  We measure their success rate so we can understand the stability of our first deployed environment after code change. Review apps are spun up at MR submission. It’s important to monitor our review app successful deployments because it’s the first place where code is integrated and deployed as one unit. This metric ensures the codebase can be installed, tested, and made available for the team to preview their changes before merging into the main master branch.",[12,65,66,67,72],{},"Our target for ",[16,68,71],{"href":69,"rel":70},"https://handbook.gitlab.com/handbook/engineering/performance/#review-app-deployment-success-rate",[],"review application deployment success"," is above 99%.",[12,74,75],{},[48,76],{"alt":77,"src":78},"review app deployment success","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398196/blog/Content%20Images/dometrics2.png",[23,80,82],{"id":81},"time-to-first-failure","Time to First Failure",[12,84,85],{},"Time to First Failure (TtFF, pronounced as “teuf”) measures how fast we are providing feedback to engineers. This metric examines how long it takes from pipeline creation to the first actionable failed build. The idea is that if the commit is going to fail, it should fail fast and the fail signal should get to the engineers as quickly as possible. The shorter the time to first failure, the faster the feedback loop, and faster time to action to address those failures.",[12,87,88,89,94],{},"Our ",[16,90,93],{"href":91,"rel":92},"https://handbook.gitlab.com/handbook/engineering/performance/#time-to-first-failure",[],"TtFF target"," is less than 15 minutes.",[12,96,97],{},[48,98],{"alt":99,"src":100},"TtFF or Time to First Failure","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398196/blog/Content%20Images/dometrics3.png",[23,102,104],{"id":103},"open-s1-bug-age","Open S1 bug age",[12,106,107],{},"This metric focuses on the age of open S1 bugs. Many organizations measure time to close bugs. At Gitlab we focus on the age of bugs remaining. We structure the metric to focus on work that is remaining and can be actioned on. If we only measure time to close of fixed defects, we may miss addressing older defects and unintentionally incentivize closing of only newer defects. We like to look forward by asking ourselves “What’s left?” and “What can be done now?” rather than only looking backward at what’s already been done.",[12,109,66,110,115],{},[16,111,114],{"href":112,"rel":113},"https://handbook.gitlab.com/handbook/engineering/performance/#s1-oba",[],"S1 open bug age"," is under 100 days.",[12,117,118],{},[48,119],{"alt":104,"src":120},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398197/blog/Content%20Images/dometrics4.png",[23,122,124],{"id":123},"open-s2-bug-age","Open S2 bug age",[12,126,127],{},"This metric is similar to the open S1 bug age, but is focused on S2 bugs. Again, we measure the age of remaining open bugs rather than focusing on bugs that have been closed.",[12,129,130,131,136],{},"Our target for the ",[16,132,135],{"href":133,"rel":134},"https://handbook.gitlab.com/handbook/engineering/performance/#s2-oba",[],"open S2 bug age"," metric is below 300 days.",[12,138,139],{},[48,140],{"alt":124,"src":141},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398203/blog/Content%20Images/dometrics5.png",[23,143,145],{"id":144},"merge-request-pipeline-duration","Merge request pipeline duration",[12,147,148],{},"When a pipeline is started for a merge request, how long does it take to run? This metric focuses on the duration of merge request pipelines and its time efficiency.  Within the total duration we break the data down into multiple  stages The team then iterates and improves time efficiencies of each stage of the pipeline. This is a key building block for improving GitLab’s code cycle time and efficiency and ensures the code is merged in a timely manner.",[12,150,151],{},"Our target for this metric is below 45 minutes.",[12,153,154],{},[48,155],{"alt":156,"src":157},"MR pipeline duration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398203/blog/Content%20Images/dometrics6.png",[23,159,161],{"id":160},"mr-pipeline-costs","MR pipeline costs",[12,163,164],{},"We use this metric at GitLab to help us determine our Merge Request Pipeline cost efficiency. We look at the total costs for the CI runners machines for MR pipelines. Once we’ve determined that figure, we divide it by the number of merge requests. This helps us monitor cost while fine-tuning efficiency. Speed and cost moves in different directions. To help speed up you can increase resources, but it comes at a cost. Monitoring this metric enables us to be balanced and have a healthy trade-off between optimizing for cost and speed.",[12,166,130,167,171],{},[16,168,161],{"href":169,"rel":170},"https://handbook.gitlab.com/handbook/engineering/performance/#merge-requests-pipeline-cost",[]," metric is below 7.50.",[12,173,174],{},[48,175],{"alt":161,"src":176},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398203/blog/Content%20Images/dometrics7.png",[23,178,180],{"id":179},"what-devops-tooling-metrics-are-most-effective-for-your-team","What DevOps tooling metrics are most effective for your team?",[12,182,183,184,21],{},"We’d like to hear what you think of our choices, and our targets, and what works, or doesn’t, for you. ",[16,185,187],{"href":18,"rel":186},[],"Chime in here",{"title":189,"searchDepth":190,"depth":190,"links":191},"",2,[192,193,194,195,196,197,198,199],{"id":25,"depth":190,"text":26},{"id":53,"depth":190,"text":54},{"id":81,"depth":190,"text":82},{"id":103,"depth":190,"text":104},{"id":123,"depth":190,"text":124},{"id":144,"depth":190,"text":145},{"id":160,"depth":190,"text":161},{"id":179,"depth":190,"text":180},"engineering","2022-04-05","Here is how we measure DevOps success and why we always try to look forward.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665635/Blog/Hero%20Images/blog-performance-metrics.jpg",{},true,"/en-us/blog/gitlab-top-devops-tooling-metrics-and-targets",{"title":5,"description":202,"ogTitle":5,"ogDescription":202,"noIndex":205,"ogImage":206,"ogUrl":211,"ogSiteName":212,"ogType":213,"canonicalUrls":211},"https://about.gitlab.com/blog/gitlab-top-devops-tooling-metrics-and-targets","https://about.gitlab.com","article","gitlab-top-devops-tooling-metrics-and-targets","en-us/blog/gitlab-top-devops-tooling-metrics-and-targets",[217,218,219],"DevOps","inside GitLab","testing","BlogPost","OtWFdTk1JZQd7-GT_2dr_Aht7-D9S8uXILvh0iIb6jw",{"logo":223,"freeTrial":228,"sales":233,"login":238,"items":243,"search":570,"minimal":601,"duo":620,"switchNav":629,"pricingDeployment":640},{"config":224},{"href":225,"dataGaName":226,"dataGaLocation":227},"/","gitlab logo","header",{"text":229,"config":230},"Get free trial",{"href":231,"dataGaName":232,"dataGaLocation":227},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":234,"config":235},"Request a demo",{"href":236,"dataGaName":237,"dataGaLocation":227},"/sales/?contact-topic=request-demo","sales",{"text":239,"config":240},"Sign in",{"href":241,"dataGaName":242,"dataGaLocation":227},"https://gitlab.com/users/sign_in/","sign in",[244,273,373,378,492,548],{"text":245,"config":246,"menu":248},"Platform",{"dataNavLevelOne":247},"platform",{"type":249,"columns":250},"cards",[251,257,265],{"title":245,"description":252,"link":253},"The intelligent orchestration platform for DevSecOps",{"text":254,"config":255},"Explore our Platform",{"href":256,"dataGaName":247,"dataGaLocation":227},"/platform/",{"title":258,"description":259,"link":260},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":261,"config":262},"Meet GitLab Duo",{"href":263,"dataGaName":264,"dataGaLocation":227},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":266,"description":267,"link":268},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":269,"config":270},"Learn more",{"href":271,"dataGaName":272,"dataGaLocation":227},"/why-gitlab/","why gitlab",{"text":274,"left":208,"config":275,"menu":277},"Product",{"dataNavLevelOne":276},"solutions",{"type":278,"link":279,"columns":283,"feature":352},"lists",{"text":280,"config":281},"View all Solutions",{"href":282,"dataGaName":276,"dataGaLocation":227},"/solutions/",[284,308,331],{"title":285,"description":286,"link":287,"items":292},"Automation","CI/CD and automation to accelerate deployment",{"config":288},{"icon":289,"href":290,"dataGaName":291,"dataGaLocation":227},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[293,297,300,304],{"text":294,"config":295},"CI/CD",{"href":296,"dataGaLocation":227,"dataGaName":294},"/solutions/continuous-integration/",{"text":258,"config":298},{"href":263,"dataGaLocation":227,"dataGaName":299},"gitlab duo agent platform - product menu",{"text":301,"config":302},"Source Code Management",{"href":303,"dataGaLocation":227,"dataGaName":301},"/solutions/source-code-management/",{"text":305,"config":306},"Automated Software Delivery",{"href":290,"dataGaLocation":227,"dataGaName":307},"Automated software delivery",{"title":309,"description":310,"link":311,"items":316},"Security","Deliver code faster without compromising security",{"config":312},{"href":313,"dataGaName":314,"dataGaLocation":227,"icon":315},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[317,321,326],{"text":318,"config":319},"Application Security Testing",{"href":313,"dataGaName":320,"dataGaLocation":227},"Application security testing",{"text":322,"config":323},"Software Supply Chain Security",{"href":324,"dataGaLocation":227,"dataGaName":325},"/solutions/supply-chain/","Software supply chain security",{"text":327,"config":328},"Software Compliance",{"href":329,"dataGaName":330,"dataGaLocation":227},"/solutions/software-compliance/","software compliance",{"title":332,"link":333,"items":338},"Measurement",{"config":334},{"icon":335,"href":336,"dataGaName":337,"dataGaLocation":227},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[339,343,347],{"text":340,"config":341},"Visibility & Measurement",{"href":336,"dataGaLocation":227,"dataGaName":342},"Visibility and Measurement",{"text":344,"config":345},"Value Stream Management",{"href":346,"dataGaLocation":227,"dataGaName":344},"/solutions/value-stream-management/",{"text":348,"config":349},"Analytics & Insights",{"href":350,"dataGaLocation":227,"dataGaName":351},"/solutions/analytics-and-insights/","Analytics and insights",{"title":353,"type":278,"items":354},"GitLab for",[355,361,367],{"text":356,"config":357},"Enterprise",{"icon":358,"href":359,"dataGaLocation":227,"dataGaName":360},"Building","/enterprise/","enterprise",{"text":362,"config":363},"Small Business",{"icon":364,"href":365,"dataGaLocation":227,"dataGaName":366},"Work","/small-business/","small business",{"text":368,"config":369},"Public Sector",{"icon":370,"href":371,"dataGaLocation":227,"dataGaName":372},"Organization","/solutions/public-sector/","public sector",{"text":374,"config":375},"Pricing",{"href":376,"dataGaName":377,"dataGaLocation":227,"dataNavLevelOne":377},"/pricing/","pricing",{"text":379,"config":380,"menu":382},"Resources",{"dataNavLevelOne":381},"resources",{"type":278,"link":383,"columns":387,"feature":481},{"text":384,"config":385},"View all resources",{"href":386,"dataGaName":381,"dataGaLocation":227},"/resources/",[388,421,448],{"title":389,"items":390},"Getting started",[391,396,401,406,411,416],{"text":392,"config":393},"Install",{"href":394,"dataGaName":395,"dataGaLocation":227},"/install/","install",{"text":397,"config":398},"Quick start guides",{"href":399,"dataGaName":400,"dataGaLocation":227},"/get-started/","quick setup checklists",{"text":402,"config":403},"Learn",{"href":404,"dataGaLocation":227,"dataGaName":405},"https://university.gitlab.com/","learn",{"text":407,"config":408},"Product documentation",{"href":409,"dataGaName":410,"dataGaLocation":227},"https://docs.gitlab.com/","product documentation",{"text":412,"config":413},"Best practice videos",{"href":414,"dataGaName":415,"dataGaLocation":227},"/getting-started-videos/","best practice videos",{"text":417,"config":418},"Integrations",{"href":419,"dataGaName":420,"dataGaLocation":227},"/integrations/","integrations",{"title":422,"items":423},"Discover",[424,429,434,439,443],{"text":425,"config":426},"Customer success stories",{"href":427,"dataGaName":428,"dataGaLocation":227},"/customers/","customer success stories",{"text":430,"config":431},"Blog",{"href":432,"dataGaName":433,"dataGaLocation":227},"/blog/","blog",{"text":435,"config":436},"Demo Hub",{"href":437,"dataGaName":438,"dataGaLocation":227},"/demo-hub/","demo hub",{"text":440,"config":441},"The Source",{"href":442,"dataGaName":433,"dataGaLocation":227},"/the-source/",{"text":444,"config":445},"Remote",{"href":446,"dataGaName":447,"dataGaLocation":227},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":449,"items":450},"Connect",[451,456,461,466,471,476],{"text":452,"config":453},"GitLab Services",{"href":454,"dataGaName":455,"dataGaLocation":227},"/services/","services",{"text":457,"config":458},"Contribute",{"href":459,"dataGaName":460,"dataGaLocation":227},"https://contributors.gitlab.com","contribute",{"text":462,"config":463},"Community",{"href":464,"dataGaName":465,"dataGaLocation":227},"/community/","community",{"text":467,"config":468},"Forum",{"href":469,"dataGaName":470,"dataGaLocation":227},"https://forum.gitlab.com/","forum",{"text":472,"config":473},"Events",{"href":474,"dataGaName":475,"dataGaLocation":227},"/events/","events",{"text":477,"config":478},"Partners",{"href":479,"dataGaName":480,"dataGaLocation":227},"/partners/","partners",{"config":482,"title":485,"text":486,"link":487},{"background":483,"textColor":484},"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":488,"config":489},"Read the latest",{"href":490,"dataGaName":491,"dataGaLocation":227},"/whats-new/","whats new",{"text":493,"config":494,"menu":496},"Company",{"dataNavLevelOne":495},"company",{"type":278,"columns":497},[498],{"items":499},[500,505,511,513,518,523,528,533,538,543],{"text":501,"config":502},"About",{"href":503,"dataGaName":504,"dataGaLocation":227},"/company/","about",{"text":506,"config":507,"footerGa":510},"Jobs",{"href":508,"dataGaName":509,"dataGaLocation":227},"/jobs/","jobs",{"dataGaName":509},{"text":472,"config":512},{"href":474,"dataGaName":475,"dataGaLocation":227},{"text":514,"config":515},"Leadership",{"href":516,"dataGaName":517,"dataGaLocation":227},"/company/team/e-group/","leadership",{"text":519,"config":520},"Handbook",{"href":521,"dataGaName":522,"dataGaLocation":227},"https://handbook.gitlab.com/","handbook",{"text":524,"config":525},"Investor relations",{"href":526,"dataGaName":527,"dataGaLocation":227},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":529,"config":530},"Trust Center",{"href":531,"dataGaName":532,"dataGaLocation":227},"/security/","trust center",{"text":534,"config":535},"AI Transparency Center",{"href":536,"dataGaName":537,"dataGaLocation":227},"/ai-transparency-center/","ai transparency center",{"text":539,"config":540},"Newsletter",{"href":541,"dataGaName":542,"dataGaLocation":227},"/company/contact/#contact-forms","newsletter",{"text":544,"config":545},"Press",{"href":546,"dataGaName":547,"dataGaLocation":227},"/press/","press",{"text":549,"config":550,"menu":551},"Contact us",{"dataNavLevelOne":495},{"type":278,"columns":552},[553],{"items":554},[555,560,565],{"text":556,"config":557},"Talk to sales",{"href":558,"dataGaName":559,"dataGaLocation":227},"/sales/","talk to sales",{"text":561,"config":562},"Support portal",{"href":563,"dataGaName":564,"dataGaLocation":227},"https://support.gitlab.com/hc/en-us","support portal",{"text":566,"config":567},"Customer portal",{"href":568,"dataGaName":569,"dataGaLocation":227},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":571,"login":572,"suggestions":579},"Close",{"text":573,"link":574},"To search repositories and projects, login to",{"text":575,"config":576},"gitlab.com",{"href":241,"dataGaName":577,"dataGaLocation":578},"search login","search",{"text":580,"default":581},"Suggestions",[582,584,588,590,594,598],{"text":258,"config":583},{"href":263,"dataGaName":258,"dataGaLocation":578},{"text":585,"config":586},"Code Suggestions (AI)",{"href":587,"dataGaName":585,"dataGaLocation":578},"/solutions/code-suggestions/",{"text":294,"config":589},{"href":296,"dataGaName":294,"dataGaLocation":578},{"text":591,"config":592},"GitLab on AWS",{"href":593,"dataGaName":591,"dataGaLocation":578},"/partners/technology-partners/aws/",{"text":595,"config":596},"GitLab on Google Cloud",{"href":597,"dataGaName":595,"dataGaLocation":578},"/partners/technology-partners/google-cloud-platform/",{"text":599,"config":600},"Why GitLab?",{"href":271,"dataGaName":599,"dataGaLocation":578},{"freeTrial":602,"mobileIcon":607,"desktopIcon":612,"secondaryButton":615},{"text":603,"config":604},"Start free trial",{"href":605,"dataGaName":232,"dataGaLocation":606},"https://gitlab.com/-/trials/new/","nav",{"altText":608,"config":609},"Gitlab Icon",{"src":610,"dataGaName":611,"dataGaLocation":606},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":608,"config":613},{"src":614,"dataGaName":611,"dataGaLocation":606},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":616,"config":617},"Get Started",{"href":618,"dataGaName":619,"dataGaLocation":606},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":621,"mobileIcon":625,"desktopIcon":627},{"text":622,"config":623},"Learn more about GitLab Duo",{"href":263,"dataGaName":624,"dataGaLocation":606},"gitlab duo",{"altText":608,"config":626},{"src":610,"dataGaName":611,"dataGaLocation":606},{"altText":608,"config":628},{"src":614,"dataGaName":611,"dataGaLocation":606},{"button":630,"mobileIcon":635,"desktopIcon":637},{"text":631,"config":632},"/switch",{"href":633,"dataGaName":634,"dataGaLocation":606},"#contact","switch",{"altText":608,"config":636},{"src":610,"dataGaName":611,"dataGaLocation":606},{"altText":608,"config":638},{"src":639,"dataGaName":611,"dataGaLocation":606},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":641,"mobileIcon":646,"desktopIcon":648},{"text":642,"config":643},"Back to pricing",{"href":376,"dataGaName":644,"dataGaLocation":606,"icon":645},"back to pricing","GoBack",{"altText":608,"config":647},{"src":610,"dataGaName":611,"dataGaLocation":606},{"altText":608,"config":649},{"src":614,"dataGaName":611,"dataGaLocation":606},{"title":651,"titleMobile":652,"button":653,"config":658},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":269,"config":654},{"href":655,"dataGaName":656,"dataGaLocation":657},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":659,"disabled":205},"release",{"data":661},{"text":662,"source":663,"edit":669,"contribute":674,"config":679,"items":684,"minimal":893},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":664,"config":665},"View page source",{"href":666,"dataGaName":667,"dataGaLocation":668},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":670,"config":671},"Edit this page",{"href":672,"dataGaName":673,"dataGaLocation":668},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":675,"config":676},"Please contribute",{"href":677,"dataGaName":678,"dataGaLocation":668},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":680,"facebook":681,"youtube":682,"linkedin":683},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[685,732,785,829,861],{"title":374,"links":686,"subMenu":701},[687,691,696],{"text":688,"config":689},"View plans",{"href":376,"dataGaName":690,"dataGaLocation":668},"view plans",{"text":692,"config":693},"Why Premium?",{"href":694,"dataGaName":695,"dataGaLocation":668},"/pricing/premium/","why premium",{"text":697,"config":698},"Why Ultimate?",{"href":699,"dataGaName":700,"dataGaLocation":668},"/pricing/ultimate/","why ultimate",[702],{"title":703,"links":704},"Contact Us",[705,708,710,712,717,722,727],{"text":706,"config":707},"Contact sales",{"href":558,"dataGaName":237,"dataGaLocation":668},{"text":561,"config":709},{"href":563,"dataGaName":564,"dataGaLocation":668},{"text":566,"config":711},{"href":568,"dataGaName":569,"dataGaLocation":668},{"text":713,"config":714},"Status",{"href":715,"dataGaName":716,"dataGaLocation":668},"https://status.gitlab.com/","status",{"text":718,"config":719},"Terms of use",{"href":720,"dataGaName":721,"dataGaLocation":668},"/terms/","terms of use",{"text":723,"config":724},"Privacy statement",{"href":725,"dataGaName":726,"dataGaLocation":668},"/privacy/","privacy statement",{"text":728,"config":729},"Cookie preferences",{"dataGaName":730,"dataGaLocation":668,"id":731,"isOneTrustButton":208},"cookie preferences","ot-sdk-btn",{"title":274,"links":733,"subMenu":742},[734,738],{"text":735,"config":736},"DevSecOps platform",{"href":256,"dataGaName":737,"dataGaLocation":668},"devsecops platform",{"text":739,"config":740},"AI-Assisted Development",{"href":263,"dataGaName":741,"dataGaLocation":668},"ai-assisted development",[743],{"title":744,"links":745},"Topics",[746,751,756,760,765,770,775,780],{"text":747,"config":748},"CICD",{"href":749,"dataGaName":750,"dataGaLocation":668},"/topics/ci-cd/","cicd",{"text":752,"config":753},"GitOps",{"href":754,"dataGaName":755,"dataGaLocation":668},"/topics/gitops/","gitops",{"text":217,"config":757},{"href":758,"dataGaName":759,"dataGaLocation":668},"/topics/devops/","devops",{"text":761,"config":762},"Version Control",{"href":763,"dataGaName":764,"dataGaLocation":668},"/topics/version-control/","version control",{"text":766,"config":767},"DevSecOps",{"href":768,"dataGaName":769,"dataGaLocation":668},"/topics/devsecops/","devsecops",{"text":771,"config":772},"Cloud Native",{"href":773,"dataGaName":774,"dataGaLocation":668},"/topics/cloud-native/","cloud native",{"text":776,"config":777},"AI for Coding",{"href":778,"dataGaName":779,"dataGaLocation":668},"/topics/devops/ai-for-coding/","ai for coding",{"text":781,"config":782},"Agentic AI",{"href":783,"dataGaName":784,"dataGaLocation":668},"/topics/agentic-ai/","agentic ai",{"title":786,"links":787},"Solutions",[788,790,792,797,801,804,808,811,813,816,819,824],{"text":318,"config":789},{"href":313,"dataGaName":318,"dataGaLocation":668},{"text":307,"config":791},{"href":290,"dataGaName":291,"dataGaLocation":668},{"text":793,"config":794},"Agile development",{"href":795,"dataGaName":796,"dataGaLocation":668},"/solutions/agile-delivery/","agile delivery",{"text":798,"config":799},"SCM",{"href":303,"dataGaName":800,"dataGaLocation":668},"source code management",{"text":747,"config":802},{"href":296,"dataGaName":803,"dataGaLocation":668},"continuous integration & delivery",{"text":805,"config":806},"Value stream management",{"href":346,"dataGaName":807,"dataGaLocation":668},"value stream management",{"text":752,"config":809},{"href":810,"dataGaName":755,"dataGaLocation":668},"/solutions/gitops/",{"text":356,"config":812},{"href":359,"dataGaName":360,"dataGaLocation":668},{"text":814,"config":815},"Small business",{"href":365,"dataGaName":366,"dataGaLocation":668},{"text":817,"config":818},"Public sector",{"href":371,"dataGaName":372,"dataGaLocation":668},{"text":820,"config":821},"Education",{"href":822,"dataGaName":823,"dataGaLocation":668},"/solutions/education/","education",{"text":825,"config":826},"Financial services",{"href":827,"dataGaName":828,"dataGaLocation":668},"/solutions/finance/","financial services",{"title":379,"links":830},[831,833,835,837,840,842,845,847,849,851,853,855,857,859],{"text":392,"config":832},{"href":394,"dataGaName":395,"dataGaLocation":668},{"text":397,"config":834},{"href":399,"dataGaName":400,"dataGaLocation":668},{"text":402,"config":836},{"href":404,"dataGaName":405,"dataGaLocation":668},{"text":407,"config":838},{"href":409,"dataGaName":839,"dataGaLocation":668},"docs",{"text":430,"config":841},{"href":432,"dataGaName":433,"dataGaLocation":668},{"text":843,"config":844},"What's new",{"href":490,"dataGaName":491,"dataGaLocation":668},{"text":425,"config":846},{"href":427,"dataGaName":428,"dataGaLocation":668},{"text":444,"config":848},{"href":446,"dataGaName":447,"dataGaLocation":668},{"text":452,"config":850},{"href":454,"dataGaName":455,"dataGaLocation":668},{"text":457,"config":852},{"href":459,"dataGaName":460,"dataGaLocation":668},{"text":462,"config":854},{"href":464,"dataGaName":465,"dataGaLocation":668},{"text":467,"config":856},{"href":469,"dataGaName":470,"dataGaLocation":668},{"text":472,"config":858},{"href":474,"dataGaName":475,"dataGaLocation":668},{"text":477,"config":860},{"href":479,"dataGaName":480,"dataGaLocation":668},{"title":493,"links":862},[863,865,867,869,871,873,877,882,884,886,888],{"text":501,"config":864},{"href":503,"dataGaName":495,"dataGaLocation":668},{"text":506,"config":866},{"href":508,"dataGaName":509,"dataGaLocation":668},{"text":514,"config":868},{"href":516,"dataGaName":517,"dataGaLocation":668},{"text":519,"config":870},{"href":521,"dataGaName":522,"dataGaLocation":668},{"text":524,"config":872},{"href":526,"dataGaName":527,"dataGaLocation":668},{"text":874,"config":875},"Sustainability",{"href":876,"dataGaName":874,"dataGaLocation":668},"/sustainability/",{"text":878,"config":879},"Diversity, inclusion and belonging (DIB)",{"href":880,"dataGaName":881,"dataGaLocation":668},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":529,"config":883},{"href":531,"dataGaName":532,"dataGaLocation":668},{"text":539,"config":885},{"href":541,"dataGaName":542,"dataGaLocation":668},{"text":544,"config":887},{"href":546,"dataGaName":547,"dataGaLocation":668},{"text":889,"config":890},"Modern Slavery Transparency Statement",{"href":891,"dataGaName":892,"dataGaLocation":668},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":894},[895,898,901],{"text":896,"config":897},"Terms",{"href":720,"dataGaName":721,"dataGaLocation":668},{"text":899,"config":900},"Cookies",{"dataGaName":730,"dataGaLocation":668,"id":731,"isOneTrustButton":208},{"text":902,"config":903},"Privacy",{"href":725,"dataGaName":726,"dataGaLocation":668},[905],{"id":906,"title":7,"body":204,"config":907,"content":909,"description":204,"extension":913,"meta":914,"navigation":208,"path":915,"seo":916,"stem":917,"__hash__":918},"blogAuthors/en-us/blog/authors/mek-stittri.yml",{"template":908},"BlogAuthor",{"name":7,"config":910},{"headshot":911,"ctfId":912},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682281/Blog/Author%20Headshots/meks-headshot.png","meks","yml",{},"/en-us/blog/authors/mek-stittri",{},"en-us/blog/authors/mek-stittri","plKWLOZl6_aeZrEvtBYIjITjR0MBj-NmkIlxAaywwMI",[920,929,937],{"title":921,"description":922,"heroImage":923,"category":200,"date":924,"authors":925,"slug":928,"externalUrl":204},"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",[926,927],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":930,"description":931,"heroImage":932,"category":200,"date":933,"authors":934,"slug":936,"externalUrl":204},"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",[935],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":938,"description":939,"heroImage":940,"category":200,"date":941,"authors":942,"slug":944,"externalUrl":204},"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",[943],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":946},[947,961,973,985],{"id":948,"categories":949,"header":951,"text":952,"button":953,"image":958},"ai-modernization",[950],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":954,"config":955},"Get your AI maturity score",{"href":956,"dataGaName":957,"dataGaLocation":433},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":959},{"src":960},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":962,"categories":963,"header":965,"text":952,"button":966,"image":970},"devops-modernization",[964,769],"product","Are you just managing tools or shipping innovation?",{"text":967,"config":968},"Get your DevOps maturity score",{"href":969,"dataGaName":957,"dataGaLocation":433},"/assessments/devops-modernization-assessment/",{"config":971},{"src":972},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":974,"categories":975,"header":977,"text":952,"button":978,"image":982},"security-modernization",[976],"security","Are you trading speed for security?",{"text":979,"config":980},"Get your security maturity score",{"href":981,"dataGaName":957,"dataGaLocation":433},"/assessments/security-modernization-assessment/",{"config":983},{"src":984},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":986,"paths":987,"header":990,"text":991,"button":992,"image":997},"github-azure-migration",[988,989],"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":993,"config":994},"See how GitLab compares to GitHub",{"href":995,"dataGaName":996,"dataGaLocation":433},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":998},{"src":972},{"header":1000,"blurb":1001,"button":1002,"secondaryButton":1007},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1003,"config":1004},"Get your free trial",{"href":1005,"dataGaName":232,"dataGaLocation":1006},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":706,"config":1008},{"href":558,"dataGaName":237,"dataGaLocation":1006},1786803751142]