<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script>
    (function() {
      var stored = localStorage.getItem('scout-theme');
      document.documentElement.setAttribute('data-theme', stored === 'light' ? 'light' : 'dark');
    })();
  </script>
  <title>Blog | Scout Monitoring</title>
  
  
  
  
  <meta name="google-site-verification" content="WcSav1xhlLKCoU9KZ6WLoXsC6rFaaYtngI3VU2ruF_Y">
  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-W82W6H5');</script>
  <meta name="description" content="Scout Monitoring provides error monitoring, log management, and APM for Ruby, Python, PHP, and Elixir applications.">
  <link rel="canonical" href="https://www.scoutapm.com/blog">

  
  <meta property="og:type" content="website">
  <meta property="og:title" content="Blog | Scout Monitoring">
  <meta property="og:description" content="Scout Monitoring provides error monitoring, log management, and APM for Ruby, Python, PHP, and Elixir applications.">
  <meta property="og:url" content="https://www.scoutapm.com/blog">
  <meta property="og:image" content="https://www.scoutapm.com/assets/images/webclip.png">
  <meta property="og:site_name" content="Scout Monitoring">
  <meta property="og:locale" content="en_US">
  

  
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="Blog | Scout Monitoring">
  <meta name="twitter:description" content="Scout Monitoring provides error monitoring, log management, and APM for Ruby, Python, PHP, and Elixir applications.">
  <meta name="twitter:image" content="https://www.scoutapm.com/assets/images/webclip.png">
  <meta name="twitter:site" content="@ScoutAPM">

  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;700&family=Space+Grotesk:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
  <link rel="shortcut icon" href="/assets/images/favicon.png" type="image/x-icon">
  <link rel="apple-touch-icon" href="/assets/images/webclip.png">
  <link rel="stylesheet" href="/assets/css/prism-one-dark.css">
  <link rel="stylesheet" href="/assets/css/main.css">

  <!-- Ortto capture code -->
  <script>window.ap3c=window.ap3c||{};var ap3c=window.ap3c;ap3c.cmd=ap3c.cmd||[];ap3c.cmd.push(function(){ap3c.init('Y5bPKHkq4ZAgyqHfc2NvdXQx','https://capture-api-us.ortto.app/');ap3c.track({v:0});});ap3c.activity=function(act){ap3c.act=(ap3c.act||[]);ap3c.act.push(act);};var s,t;s=document.createElement('script');s.type='text/javascript';s.src='https://cdn2l.ink/app.js';t=document.getElementsByTagName('script')[0];t.parentNode.insertBefore(s,t);</script>

  
  
  
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Scout Monitoring",
    "url": "https://www.scoutapm.com",
    "logo": "https://www.scoutapm.com/assets/images/webclip.png",
    "description": "Scout Monitoring provides error monitoring, log management, and APM for Ruby, Python, PHP, and Elixir applications.",
    "sameAs": [
      "https://x.com/ScoutAPM",
      "https://github.com/scoutapp",
      "https://www.linkedin.com/company/scout/",
      "https://www.youtube.com/@scoutapm",
      "https://discord.gg/keGzRHD3pv"
    ]
  }
  </script>
  
  
</head>
<body>
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W82W6H5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <header class="site-header">
  <nav>
    <a href="/" class="logo">
      <img class="img-theme-light" src="/assets/images/logos/scout-icon.svg" alt="" width="24" height="24">
      <img class="img-theme-dark" src="/assets/images/logos/scout-icon-dark.svg" alt="" width="24" height="24">
      <img class="img-theme-light" src="/assets/images/logos/scout-wordmark.svg" alt="Scout Monitoring" width="89" height="22">
      <img class="img-theme-dark" src="/assets/images/logos/scout-wordmark-dark.svg" alt="Scout Monitoring" width="89" height="22">
    </a>
    <div class="nav-main">
      <div class="nav-dropdown">
        <button class="nav-dropdown-btn" aria-expanded="false" aria-haspopup="true">Product <span class="caret">&#9662;</span></button>
        <div class="nav-dropdown-menu">
          <div class="dropdown-grid">
            <a href="/features/app-traces" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-orange"><img src="/assets/images/icons/app-traces.svg" alt="" width="18" height="18"></span>
              <div><strong>App Traces</strong><span>Code-level request visibility</span></div>
            </a>
            <a href="/features/log-management" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-blue"><img src="/assets/images/icons/log-management.svg" alt="" width="18" height="18"></span>
              <div><strong>Log Management</strong><span>Logs with trace context</span></div>
            </a>
            <a href="/features/app-metrics" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-red-orange"><img src="/assets/images/icons/app-metrics.svg" alt="" width="18" height="18"></span>
              <div><strong>App Metrics</strong><span>Real-time dashboards</span></div>
            </a>
            <a href="/features/query-analysis" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-blue"><img src="/assets/images/icons/query-analysis.svg" alt="" width="18" height="18"></span>
              <div><strong>Query Analysis</strong><span>N+1 and slow query detection</span></div>
            </a>
            <a href="/features/alerting" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-gold"><img src="/assets/images/icons/alerting.svg" alt="" width="18" height="18"></span>
              <div><strong>Alerting</strong><span>Proactive notifications</span></div>
            </a>
            <a href="/features/error-monitoring" class="dropdown-item">
              <span class="dropdown-icon dropdown-icon-teal"><img src="/assets/images/icons/error-monitoring.svg" alt="" width="18" height="18"></span>
              <div><strong>Error Monitoring</strong><span>Integrated error tracking</span></div>
            </a>
          </div>
        </div>
      </div>
      <a href="/pricing">Pricing</a>
      <a href="https://scoutapm.com/docs" target="_blank" rel="noopener">Docs</a>
      <a href="/blog" class="nav-active">Blog</a>
    </div>
    <div class="nav-social">
      <a href="https://discord.gg/keGzRHD3pv" target="_blank" rel="noopener" aria-label="Discord"><img src="/assets/images/social/discord-black.svg" alt="" width="20" height="20"></a>
      <a href="https://www.youtube.com/@scoutapm" target="_blank" rel="noopener" aria-label="YouTube"><img src="/assets/images/social/youtube-black.svg" alt="" width="20" height="20"></a>
      <a href="https://github.com/scoutapp" target="_blank" rel="noopener" aria-label="GitHub"><img src="/assets/images/social/github-black.svg" alt="" width="20" height="20"></a>
    </div>
    <div class="nav-actions">
      <button type="button" class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode">
        <span class="icon-light">&#9728;</span>
        <span class="icon-dark">&#9789;</span>
      </button>
      <a href="https://scoutapm.com/users/sign_in" class="nav-signin">Sign In</a>
      <a href="/demo" class="nav-signin">Get a Demo</a>
      <a href="https://scoutapm.com/users/sign_up" class="btn-primary">Start Free Trial</a>
    </div>
  </nav>
</header>
<script>
document.addEventListener('DOMContentLoaded', function() {
  var btn = document.querySelector('.nav-dropdown-btn');
  var menu = document.querySelector('.nav-dropdown-menu');
  btn.addEventListener('click', function(e) {
    e.stopPropagation();
    var open = btn.getAttribute('aria-expanded') === 'true';
    btn.setAttribute('aria-expanded', !open);
    menu.style.display = open ? 'none' : 'block';
  });
  document.addEventListener('click', function() {
    btn.setAttribute('aria-expanded', 'false');
    menu.style.display = 'none';
  });
  menu.addEventListener('click', function(e) { e.stopPropagation(); });

  var themeBtn = document.getElementById('theme-toggle');
  themeBtn.addEventListener('click', function() {
    var current = document.documentElement.getAttribute('data-theme');
    var next = current === 'dark' ? 'light' : 'dark';
    document.documentElement.setAttribute('data-theme', next);
    localStorage.setItem('scout-theme', next);
  });
});
</script>

  <main>
    <div class="blog-hero">
  <div class="section-eyebrow section-eyebrow-muted section-eyebrow-icon">
    <img src="/assets/images/icons/eyebrow-book.svg" alt="">
    <span>Scout Blog</span>
  </div>
  <h1>Stuff we think matters</h1>
  <div class="blog-labels">
    
    
    <a href="/blog/category/ai" class="tag">AI</a>
    
    
    
    <a href="/blog/category/dev-tools" class="tag">Dev Tools</a>
    
    
    
    <a href="/blog/category/newsletters" class="tag">Newsletters</a>
    
    
    
    <a href="/blog/category/customer-spotlight" class="tag">Customer Spotlight</a>
    
    
    
    <a href="/blog/category/scoutapp" class="tag">ScoutApp</a>
    
    
    
    <a href="/blog/category/sanic" class="tag">Sanic</a>
    
    
    
    <a href="/blog/category/ruby" class="tag">Ruby</a>
    
    
    
    <a href="/blog/category/python" class="tag">Python</a>
    
    
    
    <a href="/blog/category/rails" class="tag">Rails</a>
    
    
    
    <a href="/blog/category/popular" class="tag">Popular</a>
    
    
    
    <a href="/blog/category/performance" class="tag">Performance</a>
    
    
    
    <a href="/blog/category/mint" class="tag">Mint</a>
    
    
    
    <a href="/blog/category/php" class="tag">PHP</a>
    
    
    
    <a href="/blog/category/observability" class="tag">Observability</a>
    
    
    
    <a href="/blog/category/nodejs" class="tag">Node.js</a>
    
    
    
    <a href="/blog/category/java" class="tag">Java</a>
    
    
    
    <a href="/blog/category/laravel" class="tag">Laravel</a>
    
    
    
    <a href="/blog/category/javascript" class="tag">JavaScript</a>
    
    
    
    <a href="/blog/category/heroku" class="tag">Heroku</a>
    
    
    
    <a href="/blog/category/falcon" class="tag">Falcon</a>
    
    
    
    <a href="/blog/category/git" class="tag">Git</a>
    
    
    
    <a href="/blog/category/flask" class="tag">Flask</a>
    
    
    
    <a href="/blog/category/faktory" class="tag">Faktory</a>
    
    
    
    <a href="/blog/category/elixir" class="tag">Elixir</a>
    
    
    
    <a href="/blog/category/aws" class="tag">AWS</a>
    
    
    
    <a href="/blog/category/django" class="tag">Django</a>
    
    
    
    <a href="/blog/category/docker" class="tag">Docker</a>
    
    
    
    <a href="/blog/category/community" class="tag">Community</a>
    
    
    
    <a href="/blog/category/cloud" class="tag">Cloud</a>
    
    
    
    <a href="/blog/category/changelog" class="tag">Changelog</a>
    
    
    
    <a href="/blog/category/engineering" class="tag">Engineering</a>
    
    
  </div>
</div>
<div class="blog-listing blog-listing--patterned">
  <div class="blog-cards">
    
    <article class="blog-card">
  <a href="/blog/fastapi-native-opentelemetry-defaults" class="blog-card-image">
    
    <img src="/assets/images/blog/fastapi-native-opentelemetry-defaults.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/fastapi-native-opentelemetry-defaults">FastAPI 0.142 Turns On OpenTelemetry by Default. Here&#39;s What It Records.</a></h2>
    <time datetime="October 5, 2026">October 5, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
    </div>
    
    
    <p>FastAPI 0.142.0 records traces, metrics, and logs out of the box. Here&#39;s exactly what it captures, what it leaves out, and the four settings to check before you point it at a backend.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/best-monitoring-tools-with-mcp-servers-2026" class="blog-card-image">
    
    <img src="/assets/images/blog/best-monitoring-tools-with-mcp-servers-2026.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/best-monitoring-tools-with-mcp-servers-2026">Best Monitoring Tools With MCP Servers for AI Coding Agents (2026)</a></h2>
    <time datetime="October 1, 2026">October 1, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/ai" class="tag tag--small">AI</a>
      
      <a href="/blog/category/dev-tools" class="tag tag--small">Dev Tools</a>
      
      <a href="/blog/category/observability" class="tag tag--small">Observability</a>
      
    </div>
    
    
    <p>A comparison of the monitoring and error tracking tools with MCP servers that let Claude Code, Cursor, and other AI coding agents read production errors, traces, and logs.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/rails-404-exception-wrapper-memory-cost" class="blog-card-image">
    
    <img src="/assets/images/blog/rails-404-exception-wrapper-memory-cost.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/rails-404-exception-wrapper-memory-cost">Every 404 in Your Rails App Might Be Allocating 13 MB</a></h2>
    <time datetime="September 30, 2026">September 30, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/ruby" class="tag tag--small">Ruby</a>
      
      <a href="/blog/category/rails" class="tag tag--small">Rails</a>
      
      <a href="/blog/category/performance" class="tag tag--small">Performance</a>
      
    </div>
    
    
    <p>A Rails bug makes every exception, including routing errors from vulnerability scanners, copy every view resolver&#39;s template cache. Here&#39;s the cost, the fix in progress, and what to do today.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/scout-mcp-alert-to-pr" class="blog-card-image blog-card-image--placeholder">
    
    <img src="/assets/images/logos/scout-icon-orange.svg" alt="" class="blog-card-placeholder">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/scout-mcp-alert-to-pr">From Alert to PR: How Scout&#39;s MCP Server Closes the Loop on Performance Issues</a></h2>
    <time datetime="September 29, 2026">September 29, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/ai" class="tag tag--small">AI</a>
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/performance" class="tag tag--small">Performance</a>
      
    </div>
    
    
    <p>How Scout&#39;s MCP server pipes N+1, slow query, and memory bloat insights directly to Claude or Cursor, so your AI coding assistant can diagnose issues against real production data and open a draft PR.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/starlette-1-7-0-native-tracing-and-route-naming" class="blog-card-image">
    
    <img src="/assets/images/blog/starlette-1-7-0-native-tracing-and-route-naming.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/starlette-1-7-0-native-tracing-and-route-naming">Starlette 1.7.0 Brings Native Tracing and Smarter Route Naming</a></h2>
    <time datetime="September 29, 2026">September 29, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
      <a href="/blog/category/observability" class="tag tag--small">Observability</a>
      
    </div>
    
    
    <p>Starlette 1.7.0 ships built-in OpenTelemetry tracing and scope[&quot;route&quot;] exposure, plus a breaking AnyIO 4 requirement. Here&#39;s what to know.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/this-week-in-open-source-september-28-2026" class="blog-card-image">
    
    <img src="/assets/images/blog/this-week-in-open-source-september-28-2026.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/this-week-in-open-source-september-28-2026">This Week in Open Source: September 28, 2026</a></h2>
    <time datetime="September 28, 2026">September 28, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/newsletters" class="tag tag--small">Newsletters</a>
      
      <a href="/blog/category/ruby" class="tag tag--small">Ruby</a>
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
      <a href="/blog/category/nodejs" class="tag tag--small">Node.js</a>
      
    </div>
    
    
    <p>Starlette ships built-in OpenTelemetry tracing, PyMongo patches three CVEs, Prisma 8&#39;s release candidate carries real breaking changes, and a Rails issue exposes a hidden memory cost on every 404.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/predis-3-6-1-fixes-a-real-crlf-command-smuggling-cve" class="blog-card-image">
    
    <img src="/assets/images/blog/predis-cve.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/predis-3-6-1-fixes-a-real-crlf-command-smuggling-cve">Predis 3.6.1 Fixes a Real CRLF Command Smuggling CVE</a></h2>
    <time datetime="September 24, 2026">September 24, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/php" class="tag tag--small">PHP</a>
      
      <a href="/blog/category/laravel" class="tag tag--small">Laravel</a>
      
    </div>
    
    
    <p>Predis 3.6.1 patches a real CRLF command smuggling CVE affecting Redis clusters. Here&#39;s what changed and why PHP/Laravel teams should upgrade now.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/mongoid-7-6-2-patches-four-real-security-gaps-not-just-bugs" class="blog-card-image">
    
    <img src="/assets/images/blog/mongoid-security-patch.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/mongoid-7-6-2-patches-four-real-security-gaps-not-just-bugs">Mongoid 7.6.2 Patches Four Real Security Gaps, Not Just Bugs</a></h2>
    <time datetime="September 23, 2026">September 23, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
      <a href="/blog/category/ruby" class="tag tag--small">Ruby</a>
      
      <a href="/blog/category/rails" class="tag tag--small">Rails</a>
      
    </div>
    
    
    <p>Mongoid 7.6.2 looks like a routine patch but closes four real security gaps, from NoSQL injection to ReDoS.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/openai-python-sdk-3-17-0-breaking-change" class="blog-card-image">
    
    <img src="/assets/images/blog/openai-python-sdk-3-17-0-breaking-change.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/openai-python-sdk-3-17-0-breaking-change">OpenAI Python SDK 3.17.0: a Breaking Change and Six New Features</a></h2>
    <time datetime="September 22, 2026">September 22, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
      <a href="/blog/category/ai" class="tag tag--small">AI</a>
      
      <a href="/blog/category/engineering" class="tag tag--small">Engineering</a>
      
    </div>
    
    
    <p>OpenAI&#39;s Python SDK 3.17.0 ships a breaking change to local shell tool output plus six new features. Here&#39;s what Python teams need to know before upgrading.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/this-week-in-open-source-september-21-2026" class="blog-card-image">
    
    <img src="/assets/images/blog/this-week-in-open-source-september-21-2026.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/this-week-in-open-source-september-21-2026">This Week in Open Source: September 21, 2026</a></h2>
    <time datetime="September 21, 2026">September 21, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/newsletters" class="tag tag--small">Newsletters</a>
      
      <a href="/blog/category/php" class="tag tag--small">PHP</a>
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
      <a href="/blog/category/nodejs" class="tag tag--small">Node.js</a>
      
    </div>
    
    
    <p>OAuth/OIDC hardening continues across Symfony, Doorkeeper, and MCP SDKs for a second week running, plus Predis&#39;s official CVE release, Mongoid&#39;s security patches disguised as a routine bump, and a queued breaking change in openai-python.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/anomaly-detection-ga" class="blog-card-image">
    
    <img src="/assets/images/blog/anomaly-detection-ga.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/anomaly-detection-ga">Anomaly Detection Is Now Generally Available</a></h2>
    <time datetime="September 16, 2026">September 16, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/scoutapp" class="tag tag--small">ScoutApp</a>
      
      <a href="/blog/category/changelog" class="tag tag--small">Changelog</a>
      
      <a href="/blog/category/performance" class="tag tag--small">Performance</a>
      
    </div>
    
    
    <p>Anomaly Detection is out of beta and included on every Scout plan. It learns each endpoint&#39;s normal behavior and flags real deviations, no thresholds to configure.</p>
    
  </div>
</article>

    
    <article class="blog-card">
  <a href="/blog/this-week-in-open-source-september-15-2026" class="blog-card-image">
    
    <img src="/assets/images/blog/this-week-in-open-source-september-15-2026.png" alt="" loading="lazy">
    
  </a>
  <div class="blog-card-body">
    <h2><a href="/blog/this-week-in-open-source-september-15-2026">This Week in Open Source: September 15, 2026</a></h2>
    <time datetime="September 15, 2026">September 15, 2026</time>
    
    <div class="blog-card-tags">
      
      <a href="/blog/category/newsletters" class="tag tag--small">Newsletters</a>
      
      <a href="/blog/category/ruby" class="tag tag--small">Ruby</a>
      
      <a href="/blog/category/python" class="tag tag--small">Python</a>
      
      <a href="/blog/category/php" class="tag tag--small">PHP</a>
      
      <a href="/blog/category/nodejs" class="tag tag--small">Node.js</a>
      
    </div>
    
    
    <p>Security patches from Predis, Express, and Doorkeeper, plus new Anthropic and OpenAI SDK releases and real OpenTelemetry tracing landing in MongoDB&#39;s Python driver.</p>
    
  </div>
</article>

    
  </div>

  
  <nav class="pagination">
    
    
    <a href="/blog/page/2">Next</a>
    
  </nav>
  
</div>

  </main>
  <footer class="site-footer">
  <div class="footer-inner">
    <div class="footer-grid">
      <div class="footer-section">
        <h4>Product</h4>
        <ul>
          <li><a href="/features/app-traces">Performance Monitoring</a></li>
          <li><a href="/features/error-monitoring">Error Monitoring</a></li>
          <li><a href="/features/log-management">Log Management</a></li>
          <li><a href="/features/alerting">Alerting</a></li>
          <li><a href="/features/anomaly-monitoring">Anomaly Detection</a></li>
          <li><a href="/features/query-analysis">Query Analysis</a></li>
          <li><a href="/features/app-metrics">App Metrics</a></li>
          <li><a href="/mcp">MCP Server</a></li>
          <li><a href="/cli">Scout CLI</a></li>
          <li><a href="/integrations">Integrations</a></li>
        </ul>
      </div>
      <div class="footer-section">
        <h4>Languages</h4>
        <ul>
          <li><a href="/ruby-monitoring">Ruby</a></li>
          <li><a href="/python-monitoring">Python</a></li>
          <li><a href="/php-monitoring">PHP</a></li>
          <li><a href="/elixir-phoenix-monitoring">Elixir</a></li>
          <li><a href="/nodejs-monitoring">Node.js</a></li>
        </ul>
        <h4>Compare</h4>
        <ul>
          <li><a href="/competitor-comparisons/scout-vs-datadog">Scout vs Datadog</a></li>
          <li><a href="/competitor-comparisons/scout-vs-new-relic">Scout vs New Relic</a></li>
          <li><a href="/competitor-comparisons/scout-vs-appsignal">Scout vs AppSignal</a></li>
          <li><a href="/competitor-comparisons/scout-vs-sentry">Scout vs Sentry</a></li>
          <li><a href="/competitor-comparisons/scout-vs-skylight">Scout vs Skylight</a></li>
          <li><a href="/competitor-comparisons/scout-vs-elastic-apm">Scout vs Elastic APM</a></li>
        </ul>
      </div>
      <div class="footer-section">
        <h4>Resources</h4>
        <ul>
          <li><a href="/why-scout">Why Scout?</a></li>
          <li><a href="/blog">Blog</a></li>
          <li><a href="https://scoutapm.com/docs" target="_blank" rel="noopener">Docs</a></li>
          <li><a href="https://scoutapm.com/docs/api" target="_blank" rel="noopener">API</a></li>
          <li><a href="/pricing">Pricing</a></li>
          <li><a href="https://www.scoutapm.com/blog/category/changelog" target="_blank" rel="noopener">Changelog</a></li>
          <li><a href="https://status.scoutapm.com" target="_blank" rel="noopener">Status</a></li>
          <li><a href="/customer-stories">Customer Stories</a></li>
          <li><a href="https://www.youtube.com/playlist?list=PLzkRGUq05hOCrRvEBshFUg89GH6j3S3Py" target="_blank" rel="noopener">YouTube</a></li>
          <li><a href="/faq">FAQ</a></li>
        </ul>
      </div>
      <div class="footer-section">
        <h4>Marketplaces</h4>
        <ul>
          <li><a href="/heroku-addon">Heroku</a></li>
          <li><a href="/aws-marketplace-application-monitoring">AWS Marketplace</a></li>
          <li><a href="/digitalocean-addon">DigitalOcean</a></li>
        </ul>
        <h4>Company</h4>
        <ul>
          <li><a href="/about">About</a></li>
          <li><a href="/open-source">Open Source</a></li>
          <li><a href="/contact">Contact</a></li>
          <li><a href="/security">Security &amp; Compliance</a></li>
          <li><a href="/enterprise">Enterprise</a></li>
          <li><a href="/privacy">Privacy</a></li>
          <li><a href="/terms">Terms</a></li>
        </ul>
      </div>
    </div>
    <div class="footer-frameworks">
      <p class="footer-frameworks-label">Frameworks</p>
      <div class="footer-frameworks-grid">
        <div class="footer-frameworks-group">
          <h5><a href="/ruby-monitoring">Ruby</a></h5>
          <ul>
            <li><a href="/rails-monitoring">Rails</a></li>
            <li><a href="/sinatra-monitoring">Sinatra</a></li>
            <li><a href="/sidekiq-monitoring">Sidekiq</a></li>
            <li><a href="/grape-monitoring">Grape</a></li>
            <li><a href="/resque-monitoring">Resque</a></li>
            <li><a href="/goodjob-monitoring">GoodJob</a></li>
            <li><a href="/solid-queue-monitoring">Solid Queue</a></li>
          </ul>
        </div>
        <div class="footer-frameworks-group">
          <h5><a href="/elixir-phoenix-monitoring">Elixir</a></h5>
          <ul>
            <li><a href="/phoenix-monitoring">Phoenix</a></li>
            <li><a href="/phoenix-monitoring">LiveView</a></li>
            <li><a href="/plug-monitoring">Plug</a></li>
            <li><a href="/ecto-monitoring">Ecto</a></li>
            <li><a href="/oban-monitoring">Oban</a></li>
            <li><a href="/finch-monitoring">Finch</a></li>
            <li><a href="/tesla-monitoring">Tesla</a></li>
          </ul>
        </div>
        <div class="footer-frameworks-group">
          <h5><a href="/python-monitoring">Python</a></h5>
          <ul>
            <li><a href="/django-monitoring">Django</a></li>
            <li><a href="/flask-monitoring">Flask</a></li>
            <li><a href="/fastapi-monitoring">FastAPI</a></li>
            <li><a href="/starlette-monitoring">Starlette</a></li>
            <li><a href="/celery-monitoring">Celery</a></li>
            <li><a href="/sqlalchemy-monitoring">SQLAlchemy</a></li>
            <li><a href="/dramatiq-monitoring">Dramatiq</a></li>
          </ul>
        </div>
        <div class="footer-frameworks-group">
          <h5><a href="/php-monitoring">PHP</a></h5>
          <ul>
            <li><a href="/laravel-monitoring">Laravel</a></li>
            <li><a href="/symfony-monitoring">Symfony</a></li>
            <li><a href="/lumen-monitoring">Lumen</a></li>
            <li><a href="/php-monitoring">PDO</a></li>
            <li><a href="/php-monitoring">Predis</a></li>
            <li><a href="/php-monitoring">MongoDB</a></li>
            <li><a href="/php-monitoring">Memcached</a></li>
            <li><a href="/php-monitoring">ElasticSearch</a></li>
          </ul>
        </div>
        <div class="footer-frameworks-group">
          <h5><a href="/nodejs-monitoring">Node.js</a></h5>
          <ul>
            <li><a href="/express-monitoring">Express</a></li>
            <li><a href="/nestjs-monitoring">NestJS</a></li>
            <li><a href="/prisma-monitoring">Prisma</a></li>
          </ul>
        </div>
      </div>
    </div>

    <div class="footer-bottom">
      <a href="/" class="footer-logo">
        <img src="/assets/images/logos/scout-icon-dark.svg" alt="" width="24" height="24">
        <img src="/assets/images/logos/scout-wordmark-dark.svg" alt="Scout Monitoring" width="89" height="22">
      </a>
      <div class="footer-social">
        <a href="https://discord.gg/keGzRHD3pv" target="_blank" rel="noopener" aria-label="Discord"><img src="/assets/images/social/discord.svg" alt="Discord" width="20" height="20"></a>
        <a href="https://www.facebook.com/ScoutAPM/" target="_blank" rel="noopener" aria-label="Facebook"><img src="/assets/images/social/facebook.svg" alt="Facebook" width="20" height="20"></a>
        <a href="https://www.linkedin.com/company/scout/" target="_blank" rel="noopener" aria-label="LinkedIn"><img src="/assets/images/social/linkedin.svg" alt="LinkedIn" width="20" height="20"></a>
        <a href="https://www.youtube.com/@scoutapm" target="_blank" rel="noopener" aria-label="YouTube"><img src="/assets/images/social/youtube.svg" alt="YouTube" width="20" height="20"></a>
        <a href="https://x.com/ScoutAPM" target="_blank" rel="noopener" aria-label="X"><img src="/assets/images/social/x-twitter.svg" alt="X" width="20" height="20"></a>
        <a href="https://github.com/scoutapp" target="_blank" rel="noopener" aria-label="GitHub"><img src="/assets/images/social/github.svg" alt="GitHub" width="20" height="20"></a>
      </div>
    </div>
  </div>
</footer>

  <script src="https://assets.ubembed.com/universalscript/releases/v0.184.0/bundle.js" defer></script>
  <script src="https://d75cc8ce903f411c80c94e379b80fac3.js.ubembed.com/" defer></script>
  <!-- GA4 -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-6FNFTNYVXR"></script>
  <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-6FNFTNYVXR');</script>
  <!-- Gemini -->
  <script src="/assets/js/gemini.js" defer></script>
  </body>
</html>
