CINXE.COM
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:site" content="@appsignal" data-next-head=""/><meta name="twitter:creator" content="@appsignal" data-next-head=""/><meta content="AppSignal" name="publisher" data-next-head=""/><meta content="2021 AppSignal" name="copyright" data-next-head=""/><meta content="https://blog.appsignal.com" name="host" data-next-head=""/><meta content="Middleman App" name="generator" data-next-head=""/><title data-next-head="">New Integration: PostgreSQL Instrumented for Node.js | AppSignal Blog</title><meta name="robots" content="index,follow,max-image-preview:large" data-next-head=""/><meta name="description" content="A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library." data-next-head=""/><meta property="og:title" content="New Integration: PostgreSQL Instrumented for Node.js | AppSignal Blog" data-next-head=""/><meta property="og:description" content="A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library." data-next-head=""/><meta property="og:url" content="https://blog.appsignal.com/2020/05/14/new-integration-postgresql-instrumented-for-node-js.html" data-next-head=""/><meta property="og:type" content="article" data-next-head=""/><meta property="og:image" content="https://ondemand.bannerbear.com/signedurl/vYR1M6Lyq22EAnXbgZ/image.jpg?modifications=W3sibmFtZSI6InRpdGxlIiwidGV4dCI6Ik5ldyBJbnRlZ3JhdGlvbjogUG9zdGdyZVNRTCBJbnN0cnVtZW50ZWQgZm9yIE5vZGUuanMifSx7Im5hbWUiOiJpbWFnZSIsImltYWdlX3VybCI6Imh0dHBzOi8vYXBwc2lnbmFsLW5leHRqcy1ibG9nLTdoYzlub2p5ZC1hcHBzaWduYWwudmVyY2VsLmFwcC9pbWFnZXMvYmxvZy8yMDIwLTA1L2FwcHNpZ25hbC1wb3N0Z3Jlcy1ub2RlLmpwZyJ9LHsibmFtZSI6ImNhdGVnb3J5X2xvZ28iLCJpbWFnZV91cmwiOiJodHRwczovL2FwcHNpZ25hbC1uZXh0anMtYmxvZy03aGM5bm9qeWQtYXBwc2lnbmFsLnZlcmNlbC5hcHAvaW1hZ2VzL2xvZ29zL2FwcHNpZ25hbC1sb2dvLnBuZyJ9XQ&s=2b4ae4ef6ea63a9a861ee1eb2b9576e118c5f2acfa1f83356750d61cc454cfdf" data-next-head=""/><meta property="og:image:alt" content="New Integration: PostgreSQL Instrumented for Node.js" data-next-head=""/><meta property="og:image:type" content="image/jpeg" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="628" data-next-head=""/><link rel="canonical" href="https://blog.appsignal.com/2020/05/14/new-integration-postgresql-instrumented-for-node-js.html" data-next-head=""/><meta name="author" content="Stefan Verkerk" data-next-head=""/><meta name="article:published_time" content="2020-05-14T00:00:00+00:00" data-next-head=""/><link rel="alternate" type="application/rss+xml" title="AppSignal" href="https://blog.appsignal.com/category/appsignal-feed.xml" data-next-head=""/><link rel="icon" href="/favicon/favicon.svg" type="image/svg+xml"/><link rel="mask-icon" href="/favicon/favicon.svg" color="#29A575"/><link rel="apple-touch-icon" href="/favicon/apple-touch-icon.png"/><link rel="manifest" href="/favicon/manifest.webmanifest"/><link rel="preload" href="/fonts/rubik-v12-latin-regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/rubik-v12-latin-500.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><meta name="ahrefs-site-verification" content="eaeabe5fcccf5783b1b0c574c52a3306af55ea1ab27e5eed6405393ed63feae6"/><link rel="preload" href="/_next/static/css/a392a56cf9246d26.css" as="style"/><script type="application/ld+json" data-next-head="">{"@context":"https://schema.org","@type":"BlogPosting","datePublished":"2020-05-14T00:00:00+00:00","description":"A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library.","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.appsignal.com/2020/05/14/new-integration-postgresql-instrumented-for-node-js.html"},"headline":"New Integration: PostgreSQL Instrumented for Node.js","image":["https://ondemand.bannerbear.com/signedurl/vYR1M6Lyq22EAnXbgZ/image.jpg?modifications=W3sibmFtZSI6InRpdGxlIiwidGV4dCI6Ik5ldyBJbnRlZ3JhdGlvbjogUG9zdGdyZVNRTCBJbnN0cnVtZW50ZWQgZm9yIE5vZGUuanMifSx7Im5hbWUiOiJpbWFnZSIsImltYWdlX3VybCI6Imh0dHBzOi8vYXBwc2lnbmFsLW5leHRqcy1ibG9nLTdoYzlub2p5ZC1hcHBzaWduYWwudmVyY2VsLmFwcC9pbWFnZXMvYmxvZy8yMDIwLTA1L2FwcHNpZ25hbC1wb3N0Z3Jlcy1ub2RlLmpwZyJ9LHsibmFtZSI6ImNhdGVnb3J5X2xvZ28iLCJpbWFnZV91cmwiOiJodHRwczovL2FwcHNpZ25hbC1uZXh0anMtYmxvZy03aGM5bm9qeWQtYXBwc2lnbmFsLnZlcmNlbC5hcHAvaW1hZ2VzL2xvZ29zL2FwcHNpZ25hbC1sb2dvLnBuZyJ9XQ&amp;s=2b4ae4ef6ea63a9a861ee1eb2b9576e118c5f2acfa1f83356750d61cc454cfdf"],"dateModified":"2020-05-14T00:00:00+00:00","author":[{"@type":"Person","name":"Stefan Verkerk","url":"https://blog.appsignal.com/authors/stefan-verkerk.html"}],"publisher":{"@type":"Organization","name":"AppSignal","logo":{"@type":"ImageObject","url":"https://appsignal.com/images/logo-appsignal.svg"}}}</script><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=640&q=50 640w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=750&q=50 750w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=828&q=50 828w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1080&q=50 1080w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1200&q=50 1200w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1920&q=50 1920w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=2048&q=50 2048w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=3840&q=50 3840w" imageSizes="(min-width: 1024px) 1200px, 100vw" data-next-head=""/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.11/dist/katex.min.css" integrity="sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/a392a56cf9246d26.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script defer="" src="/_next/static/chunks/142.2a93f122278f6e7b.js"></script><script defer="" src="/_next/static/chunks/572.5947568499de7fc9.js"></script><script defer="" src="/_next/static/chunks/653.32a136c287cb6a47.js"></script><script defer="" src="/_next/static/chunks/396.b5e21ccc37006670.js"></script><script src="/_next/static/chunks/webpack-8c6213fdb13c68bb.js" defer=""></script><script src="/_next/static/chunks/framework-09d0adfeb2fe406a.js" defer=""></script><script src="/_next/static/chunks/main-b20d2c8c60474cbf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-3d303ccdab66c074.js" defer=""></script><script src="/_next/static/chunks/965-2551e136cd282557.js" defer=""></script><script src="/_next/static/chunks/132-0b54ed7d2039c49b.js" defer=""></script><script src="/_next/static/chunks/200-b6168dc33fe3a5f2.js" defer=""></script><script src="/_next/static/chunks/pages/%5Byear%5D/%5Bmonth%5D/%5Bday%5D/%5Btext%5D-cbc22e28112b1907.js" defer=""></script><script src="/_next/static/4VD4GTi1vs_NVN2Wl-Jyb/_buildManifest.js" defer=""></script><script src="/_next/static/4VD4GTi1vs_NVN2Wl-Jyb/_ssgManifest.js" defer=""></script></head><body class="font-rubik"><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=640&q=50 640w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=750&q=50 750w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=828&q=50 828w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1080&q=50 1080w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1200&q=50 1200w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1920&q=50 1920w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=2048&q=50 2048w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=3840&q=50 3840w" imageSizes="(min-width: 1024px) 1200px, 100vw"/><div id="__next"><!--$--><!--/$--><header class="sticky z-40 top-0 w-full xl:overflow-y-visible bg-gray-900 text-white border-b border-b-gray-800 border-b border-b-gray-800"><div class="c-container flex justify-between items-center py-4 false"><a href="https://www.appsignal.com" class="flex"><div class="w-[130px] h-[24px]"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350.92 64.54"><g fill="#fff"><path d="M341.56 12.58c-5.46 0-9.37 4.82-13.39 10.18C325.68 11.38 322.9 0 314.07 0S302.46 11.38 300 22.76c-4-5.36-7.93-10.18-13.39-10.18-3.47 0-9.35 2.37-9.35 11.22v16.11c0 8.69 4.64 10.82 7.42 11.54 4.8 1.25 16.36 2.4 29.37 2.4s24.57-1.15 29.36-2.4c2.79-.72 7.43-2.85 7.43-11.54V23.8c0-8.85-5.88-11.22-9.36-11.22M314.07 5c5.29 0 7.3 10.44 10.12 23-3.09 3.79-6.36 6.86-10.12 6.86S307 31.78 304 28c2.63-11.72 4.65-23 10.12-23m-31.84 34.91V23.8c0-5.59 3-6.2 4.33-6.2 3.85 0 8 6.43 11.94 11.59-2.83 11.71-5.78 18.81-12.75 17.37-1.82-.5-3.52-1.65-3.52-6.65M296 48.05c3-3.35 5-8.58 6.5-14.12 3.23 3.38 6.95 5.93 11.57 5.93s8.33-2.55 11.56-5.93c1.5 5.54 3.47 10.77 6.55 14.12-5.39.5-11.88.79-18.11.79s-12.73-.29-18.12-.79m49.91-8.14c0 5-1.71 6.15-3.52 6.65-7 1.48-9.93-5.66-12.72-17.37 3.95-5.16 8.09-11.59 11.94-11.59 1.3 0 4.34.61 4.34 6.2ZM1.13 52.07a1.12 1.12 0 0 1-.79-.34 1.16 1.16 0 0 1-.34-.85 1.52 1.52 0 0 1 .11-.52L14 13.74a2 2 0 0 1 .62-1 1.81 1.81 0 0 1 1.25-.4h5a1.81 1.81 0 0 1 1.25.4 2.44 2.44 0 0 1 .68 1l13.82 36.62a2.52 2.52 0 0 1 .06.52 1.16 1.16 0 0 1-.34.85 1.12 1.12 0 0 1-.79.34h-3.92a1.4 1.4 0 0 1-1.07-.37 2.41 2.41 0 0 1-.46-.7l-2.89-7.48H9.47L6.63 51a2 2 0 0 1-.48.66 1.5 1.5 0 0 1-1.1.37Zm10.15-14.18H25.4l-7.09-18.82ZM42.52 62.84a1.25 1.25 0 0 1-1.3-1.31V23.89a1.24 1.24 0 0 1 1.3-1.3h3.57a1.25 1.25 0 0 1 1.31 1.3v2.38a11.6 11.6 0 0 1 3.62-3A11.35 11.35 0 0 1 56.58 22a12.67 12.67 0 0 1 5.33 1 10.13 10.13 0 0 1 3.68 2.83 12.56 12.56 0 0 1 2.24 4.26 19.79 19.79 0 0 1 .88 5.21c0 .64.06 1.31.06 2s0 1.34-.06 2a18.1 18.1 0 0 1-.82 5.16 13.14 13.14 0 0 1-2.24 4.22 10.21 10.21 0 0 1-3.71 2.89 12.56 12.56 0 0 1-5.36 1.05 11.36 11.36 0 0 1-5.36-1.16 10.55 10.55 0 0 1-3.54-3v13a1.27 1.27 0 0 1-.37.94 1.38 1.38 0 0 1-1 .37ZM55 47.3a6.63 6.63 0 0 0 4.17-1.16 6.53 6.53 0 0 0 2.18-3 14.43 14.43 0 0 0 .8-4.14 25.8 25.8 0 0 0 0-3.29 14.43 14.43 0 0 0-.8-4.14 6.58 6.58 0 0 0-2.18-3A6.69 6.69 0 0 0 55 27.35a6.44 6.44 0 0 0-6.49 4.22 12.43 12.43 0 0 0-.82 3.77q-.06 1-.06 2.16c0 .79 0 1.53.06 2.21a9.3 9.3 0 0 0 .85 3.6 7.15 7.15 0 0 0 2.38 2.86A6.83 6.83 0 0 0 55 47.3ZM75.71 62.84a1.27 1.27 0 0 1-1.3-1.31V23.89a1.25 1.25 0 0 1 1.3-1.3h3.58a1.29 1.29 0 0 1 .93.36 1.27 1.27 0 0 1 .37.94v2.38a11.53 11.53 0 0 1 3.63-3A11.29 11.29 0 0 1 89.77 22a12.64 12.64 0 0 1 5.33 1 10.16 10.16 0 0 1 3.69 2.83 12.74 12.74 0 0 1 2.21 4.3 20.21 20.21 0 0 1 .88 5.21v4a18.1 18.1 0 0 1-.83 5.16 12.94 12.94 0 0 1-2.24 4.22 10.21 10.21 0 0 1-3.71 2.89 12.53 12.53 0 0 1-5.36 1.05 11.31 11.31 0 0 1-5.35-1.16 10.49 10.49 0 0 1-3.55-3v13a1.27 1.27 0 0 1-.37.94 1.34 1.34 0 0 1-1 .37ZM88.19 47.3a6.1 6.1 0 0 0 6.35-4.19 14.43 14.43 0 0 0 .79-4.11 25.8 25.8 0 0 0 0-3.29 14.43 14.43 0 0 0-.79-4.14 6.1 6.1 0 0 0-6.35-4.19 6.44 6.44 0 0 0-6.5 4.22 12.74 12.74 0 0 0-.82 3.77c0 .64-.05 1.36-.05 2.16s0 1.53.05 2.21a9.3 9.3 0 0 0 .85 3.6 7.15 7.15 0 0 0 2.38 2.86 6.84 6.84 0 0 0 4.09 1.1ZM122.17 52.63a21.18 21.18 0 0 1-8.56-1.53 12.82 12.82 0 0 1-5.27-4 9.44 9.44 0 0 1-1.93-5.25 1.1 1.1 0 0 1 .34-.79 1.15 1.15 0 0 1 .85-.34h4a1.47 1.47 0 0 1 1 .31 2.75 2.75 0 0 1 .57.76 6.36 6.36 0 0 0 1.36 2.39 7.72 7.72 0 0 0 2.86 2 12.06 12.06 0 0 0 4.73.79q4.48 0 6.61-1.53a4.88 4.88 0 0 0 2.12-4.19 3.83 3.83 0 0 0-1.13-2.87 10.56 10.56 0 0 0-3.52-2c-1.58-.6-3.64-1.25-6.17-1.93a36.52 36.52 0 0 1-7-2.55 10.29 10.29 0 0 1-4.19-3.57 9.81 9.81 0 0 1-1.39-5.44 9.72 9.72 0 0 1 1.73-5.67 11.66 11.66 0 0 1 4.93-3.94 18.66 18.66 0 0 1 7.68-1.45 19 19 0 0 1 6.35 1 14 14 0 0 1 4.57 2.55 11.53 11.53 0 0 1 2.77 3.4 8.31 8.31 0 0 1 1 3.57 1.18 1.18 0 0 1-.32.77 1.09 1.09 0 0 1-.87.37h-4.14a1.83 1.83 0 0 1-.88-.23 1.5 1.5 0 0 1-.65-.85 5.22 5.22 0 0 0-2.44-3.46 9.49 9.49 0 0 0-5.39-1.42 10.19 10.19 0 0 0-5.41 1.28 4.35 4.35 0 0 0-2.07 4 4.24 4.24 0 0 0 1 2.89 8.38 8.38 0 0 0 3.18 2 58.53 58.53 0 0 0 5.75 1.9 43.26 43.26 0 0 1 7.76 2.54 10.38 10.38 0 0 1 4.4 3.51 9.64 9.64 0 0 1 1.41 5.42 10 10 0 0 1-1.95 6.2 12.32 12.32 0 0 1-5.44 4 22 22 0 0 1-8.25 1.36ZM143.77 17.37a1.34 1.34 0 0 1-1-.37 1.24 1.24 0 0 1-.37-.93v-3.58a1.34 1.34 0 0 1 .37-1 1.32 1.32 0 0 1 1-.4h4.31a1.39 1.39 0 0 1 1 .4 1.29 1.29 0 0 1 .4 1v3.58a1.2 1.2 0 0 1-.4.93 1.41 1.41 0 0 1-1 .37Zm.34 34.7a1.38 1.38 0 0 1-1-.37 1.27 1.27 0 0 1-.37-.94V23.89a1.27 1.27 0 0 1 .37-.94 1.37 1.37 0 0 1 1-.36h3.69a1.25 1.25 0 0 1 1.3 1.3v26.87a1.27 1.27 0 0 1-.37.94 1.28 1.28 0 0 1-.93.37ZM168.5 64.54a17.5 17.5 0 0 1-6.58-1.05 12.16 12.16 0 0 1-4-2.52 9.27 9.27 0 0 1-2.09-2.97 8.1 8.1 0 0 1-.65-2.38 1.13 1.13 0 0 1 .34-1 1.3 1.3 0 0 1 1-.39h3.86a1.51 1.51 0 0 1 .85.22 1.8 1.8 0 0 1 .56 1 11.19 11.19 0 0 0 1 1.73 5 5 0 0 0 1.93 1.61 7.69 7.69 0 0 0 3.57.68 11 11 0 0 0 4.05-.65 4.82 4.82 0 0 0 2.5-2.3 9.59 9.59 0 0 0 .87-4.47v-3.84a10.93 10.93 0 0 1-3.64 2.79 11.93 11.93 0 0 1-5.38 1.08 12.69 12.69 0 0 1-5.36-1 9.78 9.78 0 0 1-3.69-2.86 13.36 13.36 0 0 1-2.21-4.28 18.82 18.82 0 0 1-.82-5.27q-.06-1.53 0-3.12a18.94 18.94 0 0 1 .8-5.16 12.85 12.85 0 0 1 2.21-4.39 10.34 10.34 0 0 1 3.71-2.94 12.23 12.23 0 0 1 5.36-1.06 11.1 11.1 0 0 1 5.52 1.25 11.77 11.77 0 0 1 3.66 3.06V24a1.37 1.37 0 0 1 .37-1 1.31 1.31 0 0 1 1-.39h3.57a1.33 1.33 0 0 1 1.35 1.39v27.39a16.14 16.14 0 0 1-1.38 6.91 10 10 0 0 1-4.4 4.59 16.32 16.32 0 0 1-7.88 1.65Zm-.17-17.69a6.62 6.62 0 0 0 4.11-1.19 7.39 7.39 0 0 0 2.33-3 10.87 10.87 0 0 0 .87-3.71c0-.49.06-1.12.06-1.9s0-1.39-.06-1.84a11.09 11.09 0 0 0-.87-3.74 7.13 7.13 0 0 0-2.33-3 6.74 6.74 0 0 0-4.11-1.16 6.85 6.85 0 0 0-4.17 1.16 6.49 6.49 0 0 0-2.24 3 14.43 14.43 0 0 0-.79 4.14v2.84a14.62 14.62 0 0 0 .79 4.11 6.52 6.52 0 0 0 2.24 3.06 6.85 6.85 0 0 0 4.17 1.23ZM190.13 52.07a1.38 1.38 0 0 1-1-.37 1.31 1.31 0 0 1-.37-.94V23.89a1.31 1.31 0 0 1 .37-.94 1.37 1.37 0 0 1 1-.36h3.63a1.25 1.25 0 0 1 1.31 1.3v2.44a12.29 12.29 0 0 1 3.8-3.09 11.91 11.91 0 0 1 5.72-1.24 11.34 11.34 0 0 1 6.12 1.59 10.28 10.28 0 0 1 3.92 4.41 15.55 15.55 0 0 1 1.37 6.77v16a1.25 1.25 0 0 1-.4.94 1.39 1.39 0 0 1-1 .37h-3.92a1.28 1.28 0 0 1-.93-.37 1.27 1.27 0 0 1-.37-.94V35.06a8.33 8.33 0 0 0-1.79-5.67 6.45 6.45 0 0 0-5.13-2 6.84 6.84 0 0 0-5.18 2 7.83 7.83 0 0 0-2 5.67v15.7a1.22 1.22 0 0 1-.4.94 1.37 1.37 0 0 1-1 .37ZM230.92 52.63a11.76 11.76 0 0 1-5.25-1.16 9.93 9.93 0 0 1-3.74-3.09 7.31 7.31 0 0 1-1.39-4.38 7.42 7.42 0 0 1 3.18-6.27 18.1 18.1 0 0 1 8.39-3.09l8-1.19v-1.4a5.5 5.5 0 0 0-1.36-4c-.91-.94-2.42-1.41-4.54-1.41a6.9 6.9 0 0 0-3.74.9 5.22 5.22 0 0 0-2 2.44 1.32 1.32 0 0 1-1.25.74h-3.51a1.2 1.2 0 0 1-.94-.34 1.34 1.34 0 0 1-.31-.91 5.88 5.88 0 0 1 .71-2.12 8.28 8.28 0 0 1 2.07-2.5 11.76 11.76 0 0 1 3.66-2 15.47 15.47 0 0 1 5.35-.82 17.06 17.06 0 0 1 5.9.88 9.93 9.93 0 0 1 3.8 2.35 9.17 9.17 0 0 1 2.07 3.4 12.46 12.46 0 0 1 .65 4v18.1a1.22 1.22 0 0 1-.4.94 1.37 1.37 0 0 1-1 .37h-3.63a1.25 1.25 0 0 1-1.3-1.31v-2.38a9.3 9.3 0 0 1-2 2 10.74 10.74 0 0 1-3 1.62 13.85 13.85 0 0 1-4.42.63Zm1.59-4.82a8.24 8.24 0 0 0 3.91-.93A6.74 6.74 0 0 0 239.2 44a10.38 10.38 0 0 0 1-4.88v-1.4l-6.13 1a13.25 13.25 0 0 0-5.52 1.75 3.66 3.66 0 0 0-1.85 3.06 3.46 3.46 0 0 0 .85 2.41 5.33 5.33 0 0 0 2.16 1.42 8 8 0 0 0 2.8.45ZM254.47 52.07a1.25 1.25 0 0 1-1.3-1.31V13.12a1.25 1.25 0 0 1 1.3-1.31h3.74a1.25 1.25 0 0 1 1.3 1.31v37.64a1.25 1.25 0 0 1-1.3 1.31Z"></path></g></svg></div></a><div class="hidden xl:block"><ul class="flex"><li><div class="block py-2 px-2 xl:px-3 no-underline cursor-pointer select-none text-gray-200 hover:text-white"><span>Features</span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-down" class="svg-inline--fa fa-angle-down inline-block pb-0.5 ml-2 text-gray-400 text-xxs" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"></path></svg><div class="absolute mt-0 pt-2.5 z-10 w-72 hidden"><div class="w-72 px-3 py-4 bg-white shadow rounded-lg text-left"><h3 class="px-2 c_h-heading c_h-heading--caps text-sm tracking-wider text-gray-600 pb-2">Monitoring features</h3><ul><li><a href="https://www.appsignal.com/tour/errors/" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-orange-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bug" class="svg-inline--fa fa-bug fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Error tracking</span></a></li><li><a href="https://www.appsignal.com/tour/performance" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-green-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rabbit-running" class="svg-inline--fa fa-rabbit-running fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M460.7 39.3l-2.2-2.1c-4.7-4.6-11.5-6.4-17.9-4.7s-11.4 6.6-13.1 13l-.8 2.9c-3.3 11.8-5.1 23.7-5.5 35.6c24.3 20.6 42.9 47.8 53.3 78.8c-8.2-1.9-16.5-2.9-25-2.9c-.6 0-1.1 0-1.7 0c-18.4-44-56.5-77.4-103.6-89.3l-3.4-.9c-6.2-1.6-12.9-.6-18.5 2.6c-10.8 6.2-15.6 19.5-11.2 31.1c14.9 39.5 44.3 71.4 81.4 89.7c-3.7 6.6-6.4 14-7.6 21.8L279.7 154.9C248.8 137.3 213.8 128 178.2 128c-32.3 0-62.2 16.8-78.9 44.4C89 159.9 73.4 152 56 152c-30.9 0-56 25.1-56 56s25.1 56 56 56c11.3 0 21.8-3.3 30.6-9.1c4.9 17.2 14.5 33.1 28.4 45.9L257.2 431.2C269 442 284.4 448 300.4 448H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352 335.2 320V340.5c0-42.9-28.4-80.5-69.6-92.3l-30.8-8.8c-8.5-2.4-13.4-11.3-11-19.8s11.3-13.4 19.8-11l30.8 8.8c55 15.7 92.8 65.9 92.8 123.1v15.7l56-32.4 6.4-3.7H515.7c33.3 0 60.3-27 60.3-60.3c0-18.1-8.2-35.3-22.2-46.7l-34.6-28.2c-4.6-3.7-9.4-7.1-14.5-10c8.4-49.3-7.8-100-43.9-135.5zm-318.5 382c-14.7 9.8-18.7 29.7-8.9 44.4s29.7 18.7 44.4 8.9l46-30.7-48.6-44.5-32.9 22zM480 240a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Performance monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/hosts" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-teal-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="server" class="svg-inline--fa fa-server fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Host monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/anomaly-detection" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-red-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="siren-on" class="svg-inline--fa fa-siren-on fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M69.3 36l48 32c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-48-32c-11-7.4-14-22.3-6.7-33.3s22.3-14 33.3-6.7zM597.3 76l-48 32c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l48-32c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3zM24 192H88c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm528 0h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552c-13.3 0-24-10.7-24-24s10.7-24 24-24zM144 352l25-199.9c4-32 31.2-56.1 63.5-56.1h175c32.3 0 59.5 24 63.5 56.1L496 352H234.1l21.8-174c1.1-8.8-5.1-16.8-13.9-17.9s-16.8 5.1-17.9 13.9L201.9 352H144zM96 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Anomaly detection</span></a></li><li><a href="https://www.appsignal.com/tour/uptime-monitoring" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-yellow-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="traffic-light" class="svg-inline--fa fa-traffic-light fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Uptime monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/metrics" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-purple-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Metric dashboards</span></a></li><li><a href="https://www.appsignal.com/tour/workflow" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-blue-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users" class="svg-inline--fa fa-users fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Workflow</span></a></li><li><a href="https://www.appsignal.com/tour/log-management" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-hot-pink-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="line-columns" class="svg-inline--fa fa-line-columns fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M224 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H192c17.7 0 32-14.3 32-32zm0 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM0 320c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM224 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM288 64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 192c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32zM288 320c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 448c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Log management</span></a></li><li><a href="https://www.appsignal.com/tour/automated-dashboards" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-purple-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Automated Dashboards</span></a></li><li><a href="https://www.appsignal.com/tour/check-ins" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-blue-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square-check" class="svg-inline--fa fa-square-check fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Check-ins</span></a></li><li><a href="https://www.appsignal.com/tour/time-detective" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-azure-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"></div><span class="text-gray-700 group-hover:text-gray-800">Time Detective</span></a></li></ul></div></div></div></li><li><div class="block py-2 px-2 xl:px-3 no-underline cursor-pointer select-none text-gray-200 hover:text-white"><span>Languages</span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-down" class="svg-inline--fa fa-angle-down inline-block pb-0.5 ml-2 text-gray-400 text-xxs" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"></path></svg><div class="absolute mt-0 pt-2.5 z-10 w-72 hidden"><div class="w-72 px-3 py-4 bg-white shadow rounded-lg text-left"><h3 class="px-2 c_h-heading c_h-heading--caps text-sm tracking-wider text-gray-600 pb-2">Supported Languages</h3><ul><li><a href="https://www.appsignal.com/ruby" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-red-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gem" class="svg-inline--fa fa-gem fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Ruby (on Rails) APM</span></a></li><li><a href="https://www.appsignal.com/elixir" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-purple-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="droplet" class="svg-inline--fa fa-droplet fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Elixir APM</span></a></li><li><a href="https://www.appsignal.com/nodejs" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-green-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="node-js" class="svg-inline--fa fa-node-js fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Node.js APM</span></a></li><li><a href="https://www.appsignal.com/javascript" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-yellow-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="square-js" class="svg-inline--fa fa-square-js fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">JavaScript Error Tracking</span></a></li><li><a href="https://www.appsignal.com/python" class="flex items-center space-x-3 px-2 py-1 no-underline rounded transition-colors group"><div class="text-blue-500 flex justify-center items-center h-7 w-7 border border-gray-200 bg-white shadow-sm rounded-md group-hover:shadow transition-all"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="python" class="svg-inline--fa fa-python fa-xs " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"></path></svg></div><span class="text-gray-700 group-hover:text-gray-800">Python APM</span></a></li></ul></div></div></div></li><li><a href="https://www.appsignal.com/learning-center" class="block py-2 px-2 xl:px-3 no-underline text-gray-200 hover:text-white ">Learn</a></li><li><a href="https://docs.appsignal.com" class="block py-2 px-2 xl:px-3 no-underline text-gray-200 hover:text-white ">Docs</a></li><li><a class="block py-2 px-2 xl:px-3 no-underline text-gray-200 hover:text-white " href="/">Blog</a></li><li><a href="https://www.appsignal.com/plans" class="block py-2 px-2 xl:px-3 no-underline text-gray-200 hover:text-white ">Pricing</a></li></ul></div><ul class="hidden xl:flex justify-end space-x-4 dark"><li><a href="https://appsignal.com/users/sign_in" class="c-button c-button--sm text-white border-gray-700 bg-blue-800 hover:bg-gray-700">Login</a></li><li><a href="https://appsignal.com/users/sign_up" class="c-button c-button--sm c-button--green">Start free trial</a></li></ul><div class="xl:hidden dark"><a href="#menu" class="c-button c-button--sm c-button--white dark:c-button--gray"><div class="flex item-center space-x-2 pr-0.5"><div>Menu</div><div class="inline-block w-2 pt-0.25"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bars" class="svg-inline--fa fa-bars " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"></path></svg></div></div></a></div></div><nav class="hidden border-t border-gray-700"><div class="dark c-container h-screen overflow-y-auto pt-7 pb-40"><div><h3 class="c_h-heading c_h-heading--caps text-sm text-gray-200 pb-3 mb-3 border-b border-gray-700">Monitoring features</h3><ul class="pb-8 space-y-1"><li><a href="https://www.appsignal.com/tour/errors/" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bug" class="svg-inline--fa fa-bug " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"></path></svg></figure><span>Error tracking</span></a></li><li><a href="https://www.appsignal.com/tour/performance" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rabbit-running" class="svg-inline--fa fa-rabbit-running " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M460.7 39.3l-2.2-2.1c-4.7-4.6-11.5-6.4-17.9-4.7s-11.4 6.6-13.1 13l-.8 2.9c-3.3 11.8-5.1 23.7-5.5 35.6c24.3 20.6 42.9 47.8 53.3 78.8c-8.2-1.9-16.5-2.9-25-2.9c-.6 0-1.1 0-1.7 0c-18.4-44-56.5-77.4-103.6-89.3l-3.4-.9c-6.2-1.6-12.9-.6-18.5 2.6c-10.8 6.2-15.6 19.5-11.2 31.1c14.9 39.5 44.3 71.4 81.4 89.7c-3.7 6.6-6.4 14-7.6 21.8L279.7 154.9C248.8 137.3 213.8 128 178.2 128c-32.3 0-62.2 16.8-78.9 44.4C89 159.9 73.4 152 56 152c-30.9 0-56 25.1-56 56s25.1 56 56 56c11.3 0 21.8-3.3 30.6-9.1c4.9 17.2 14.5 33.1 28.4 45.9L257.2 431.2C269 442 284.4 448 300.4 448H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352 335.2 320V340.5c0-42.9-28.4-80.5-69.6-92.3l-30.8-8.8c-8.5-2.4-13.4-11.3-11-19.8s11.3-13.4 19.8-11l30.8 8.8c55 15.7 92.8 65.9 92.8 123.1v15.7l56-32.4 6.4-3.7H515.7c33.3 0 60.3-27 60.3-60.3c0-18.1-8.2-35.3-22.2-46.7l-34.6-28.2c-4.6-3.7-9.4-7.1-14.5-10c8.4-49.3-7.8-100-43.9-135.5zm-318.5 382c-14.7 9.8-18.7 29.7-8.9 44.4s29.7 18.7 44.4 8.9l46-30.7-48.6-44.5-32.9 22zM480 240a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"></path></svg></figure><span>Performance monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/hosts" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="server" class="svg-inline--fa fa-server " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"></path></svg></figure><span>Host monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/anomaly-detection" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="siren-on" class="svg-inline--fa fa-siren-on " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M69.3 36l48 32c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-48-32c-11-7.4-14-22.3-6.7-33.3s22.3-14 33.3-6.7zM597.3 76l-48 32c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l48-32c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3zM24 192H88c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm528 0h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552c-13.3 0-24-10.7-24-24s10.7-24 24-24zM144 352l25-199.9c4-32 31.2-56.1 63.5-56.1h175c32.3 0 59.5 24 63.5 56.1L496 352H234.1l21.8-174c1.1-8.8-5.1-16.8-13.9-17.9s-16.8 5.1-17.9 13.9L201.9 352H144zM96 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416z"></path></svg></figure><span>Anomaly detection</span></a></li><li><a href="https://www.appsignal.com/tour/uptime-monitoring" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="traffic-light" class="svg-inline--fa fa-traffic-light " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"></path></svg></figure><span>Uptime monitoring</span></a></li><li><a href="https://www.appsignal.com/tour/metrics" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></figure><span>Metric dashboards</span></a></li><li><a href="https://www.appsignal.com/tour/workflow" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users" class="svg-inline--fa fa-users " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"></path></svg></figure><span>Workflow</span></a></li><li><a href="https://www.appsignal.com/tour/log-management" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="line-columns" class="svg-inline--fa fa-line-columns " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M224 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H192c17.7 0 32-14.3 32-32zm0 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM0 320c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM224 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM288 64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 192c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32zM288 320c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 448c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32z"></path></svg></figure><span>Log management</span></a></li><li><a href="https://www.appsignal.com/tour/automated-dashboards" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></figure><span>Automated Dashboards</span></a></li><li><a href="https://www.appsignal.com/tour/check-ins" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square-check" class="svg-inline--fa fa-square-check " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"></path></svg></figure><span>Check-ins</span></a></li><li><a href="https://www.appsignal.com/tour/time-detective" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"></figure><span>Time Detective</span></a></li></ul></div><div><h3 class="c_h-heading c_h-heading--caps text-sm text-gray-200 pb-3 mb-3 border-b border-gray-700">Supported Languages</h3><ul class="pb-8 space-y-1"><li><a href="https://www.appsignal.com/ruby" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gem" class="svg-inline--fa fa-gem " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"></path></svg></figure><span>Ruby (on Rails) APM</span></a></li><li><a href="https://www.appsignal.com/elixir" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="droplet" class="svg-inline--fa fa-droplet " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"></path></svg></figure><span>Elixir APM</span></a></li><li><a href="https://www.appsignal.com/nodejs" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="node-js" class="svg-inline--fa fa-node-js " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"></path></svg></figure><span>Node.js APM</span></a></li><li><a href="https://www.appsignal.com/javascript" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="square-js" class="svg-inline--fa fa-square-js " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"></path></svg></figure><span>JavaScript Error Tracking</span></a></li><li><a href="https://www.appsignal.com/python" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="python" class="svg-inline--fa fa-python " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"></path></svg></figure><span>Python APM</span></a></li></ul></div><div></div><div></div><div></div><div></div><div><ul><li><a href="https://www.appsignal.com/learning-center" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="book-open" class="svg-inline--fa fa-book-open " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z"></path></svg></figure><span>Learn</span></a></li><li><a href="https://docs.appsignal.com" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="book" class="svg-inline--fa fa-book " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"></path></svg></figure><span>Docs</span></a></li><li><a class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base" href="/"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rss" class="svg-inline--fa fa-rss " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"></path></svg></figure><span>Blog</span></a></li><li><a href="https://www.appsignal.com/plans" class="flex items-center space-x-3 py-1 no-underline text-sm sm:text-base"><figure class="c_h-icon-box undefined c_h-icon-box--sm undefined"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="dollar-sign" class="svg-inline--fa fa-dollar-sign " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"></path></svg></figure><span>Pricing</span></a></li><li><a href="https://appsignal.com/users/sign_in" class="block mt-4 text-center c-button c-button--sm c-button--gray">Login</a></li><li><a href="https://appsignal.com/users/sign_up" class="block mt-4 text-center c-button c-button--sm">Start free trial</a></li></ul></div></div></nav></header><main><article><header class="bg-blue-800"><div class="c-container"><div class="grid grid-cols-1 items-center gap-12 lg:gap-8 mx-auto py-12 md:py-16 lg:grid-cols-2 max-w-6xl"><div><p class="c_h-heading c_h-heading--caps text-base md:text-lg mb-3 text-blue-200">appsignal</p><h1 class="c_h-heading c_h-heading--4xl sm:c_h-heading--5xl md:c_h-heading--6xl text-white mb-6 md:mb-8">New Integration: PostgreSQL Instrumented for Node.js</h1><div class="flex items-center space-x-2.5"><div class="flex -space-x-2"><figure class="relative z-20 w-6 md:w-8 h-6 md:h-8 rounded-full overflow-hidden border-2 border-white"><img alt="Stefan Verkerk" loading="lazy" decoding="async" data-nimg="fill" class="object-cover" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="24px" srcSet="/_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=16&q=75 16w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=32&q=75 32w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=48&q=75 48w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=64&q=75 64w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=96&q=75 96w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=128&q=75 128w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=256&q=75 256w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=384&q=75 384w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=3840&q=75"/></figure></div><div class="flex flex-col"><p class="sm:text-base text-blue-200"><a class="no-underline hover:underline" href="/authors/stefan-verkerk.html">Stefan Verkerk</a><span class="white-space-nowrap"> <!-- -->on <time dateTime="2020-05-14">May 14, 2020</time></span></p></div></div></div><div class="rounded-lg overflow-hidden border-2 border-white border-opacity-20"><div class="bg-blue-700 relative h-48 sm:h-64 md:h-80"><img alt="New Integration: PostgreSQL Instrumented for Node.js" decoding="async" data-nimg="fill" class="object-cover" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(min-width: 1024px) 1200px, 100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=640&q=50 640w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=750&q=50 750w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=828&q=50 828w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1080&q=50 1080w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1200&q=50 1200w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=1920&q=50 1920w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=2048&q=50 2048w, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=3840&q=50 3840w" src="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fappsignal-postgres-node.jpg&w=3840&q=50"/></div></div></div></div></header><div class="c-container pt-16 pb-12"><div class="prose md:prose-md mx-auto"><p>Today鈥檚 release of Node.js integration supports PostgreSQL as well as all the consumers of the <code>pg</code> library.</p> <h2 id="doing-the-instrumentation-for-you">Doing the Instrumentation FOR You</h2> <p>AppSignal does as much work as it can for you. We aim for your whole stack to be automatically instrumented, so that you can spend your time writing and improving code. We love products that put the user鈥檚 convenience over the maker鈥檚, so that鈥檚 what we have done with AppSignal as well. You can install AppSignal in 5 minutes and get a lot of things instrumented right away.</p> <p>In the coming weeks, we will be rolling out a whole array of integrations on Node.js one by one. This means that more and more parts will be instrumented without you doing any work. Well, except upgrading to the latest <a href="https://www.npmjs.com/package/@appsignal/nodejs">AppSignal <code>npm</code> package</a> and installing the <code>pg</code> plugin. <a href="https://github.com/appsignal/appsignal-nodejs/tree/master/packages/pg#appsignalpg">Check out our documentation to get going</a>.</p> <p>AppSignal's combination of error tracking, performance monitoring, host metrics and custom metric dashboards helps you solve your issues seamlessly. All of these things work out of the box for Node.js.</p> <h2 id="improving-performance-with-appsignals-postgresql-integration">Improving Performance with AppSignal's PostgreSQL Integration</h2> <p>With today鈥檚 integration update, you will see a more detailed breakdown of the events within a particular request. Today鈥檚 release enables this for <code>knex</code>, <code>bookshelfjs</code>, <code>typeORM</code> and all other consumers of the <code>pg</code> library. Here鈥檚 an example where you can see the duration of a PostgreSQL process within a sample:</p> <figure class="mx-auto"><div data-rmiz-wrap="visible" style="display:block"><img alt="IncidentPageWithPostGreSQL" loading="lazy" width="1954" height="770" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-1.png&w=2048&q=75 1x, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-1.png&w=3840&q=75 2x" src="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-1.png&w=3840&q=75"/><button aria-label="Zoom image" data-rmiz-btn-open="true"></button></div></figure> <p>If we zoom in further on the performance of this sample, further down the page you'll find a timeline of all events. This now has your PostgreSQL consumers detailed.</p> <figure class="mx-auto"><div data-rmiz-wrap="visible" style="display:block"><img alt="IncidentPageTimelineWithPostGreSQL" loading="lazy" width="2944" height="1504" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-2.png&w=3840&q=75 1x" src="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-2.png&w=3840&q=75"/><button aria-label="Zoom image" data-rmiz-btn-open="true"></button></div></figure> <p>The integration shows you the tracing for database calls, so you can see what query is the root of your evil (or genius) 馃槈.</p> <figure class="mx-auto"><div data-rmiz-wrap="visible" style="display:block"><img alt="IncidentPageTracingWithPostGreSQL" loading="lazy" width="1954" height="880" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-3.png&w=2048&q=75 1x, /_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-3.png&w=3840&q=75 2x" src="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-3.png&w=3840&q=75"/><button aria-label="Zoom image" data-rmiz-btn-open="true"></button></div></figure> <p>If the root of some evil turns out to be a repeated database query know as an N+1 query, we specifically label those so that it鈥檚 easier to find. On the performance sample screen we looked at before, you can then see what role they play in the timeline for that sample. For example, it can show <code>N+32</code> there, so you immediately get a glance on how much lazy loading led to this.</p> <figure class="mx-auto"><div data-rmiz-wrap="visible" style="display:block"><img alt="IncidentPageWithNPlusOnePostGreSQL" loading="lazy" width="2944" height="1504" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-4.png&w=3840&q=75 1x" src="/_next/image?url=%2Fimages%2Fblog%2F2020-05%2Fscreenshot-4.png&w=3840&q=75"/><button aria-label="Zoom image" data-rmiz-btn-open="true"></button></div></figure> <p>If you want to solve these N+1 issues before they lead to any issues, you can see them all flagged on the Performance issue list page.</p> <h2 id="installing-takes-minutes-and-brings-you-stroopwafels-for-days-insights-forever">Installing Takes Minutes and Brings You <del>Stroopwafels for Days</del> Insights Forever</h2> <p>If we made you curious, you can get AppSignal installed and reporting in 5 minutes. Meanwhile we鈥檒l go back to <a href="https://www.appsignal.com/waffles"><del>munching stroopwafels</del></a> working on the Next (hint, hint) integration 馃槈</p> <p>PS. <a href="mailto:support@appsignal.com?subject=NodeStroopWafelsPlease">Drop us a note</a> if you are trying AppSignal and want to have some stroopwafels and swag to go with that.</p></div></div></article><section class="c-container || content-visibility-auto" id="authors"><div class="max-w-prose mx-auto py-12 space-y-12 border-b border-gray-200"><section class="flex max-w-prose mx-auto space-x-4 sm:space-x-8"><figure class="relative flex-shrink-0 w-14 h-14"><img alt="Stefan Verkerk" loading="lazy" decoding="async" data-nimg="fill" class="object-cover rounded-full" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="56px" srcSet="/_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=16&q=75 16w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=32&q=75 32w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=48&q=75 48w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=64&q=75 64w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=96&q=75 96w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=128&q=75 128w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=256&q=75 256w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=384&q=75 384w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fauthors%2Fstefan.jpg&w=3840&q=75"/></figure><div class="space-y-2"><h1 class="c_h-heading c_h-heading--xl leading-tight">Stefan Verkerk</h1><div class="space-y-5"><p class="text-gray-700">Stefan often shares stories about his Mosaic script-kiddie years. Has been scaling startups since the 90s. Today, he does management and growth things at AppSignal. Has amazing Excel to SQL chops on his customized MacBook.</p><span class="flex items-center space-x-2 c-link leading-none"><span class="no-underline"></span><a href="/authors/stefan-verkerk.html">All articles by <!-- -->Stefan Verkerk</a></span></div></div></section></div><div class="max-w-prose mx-auto flex justify-between items-center pt-12 pb-12 sm:pb-20"><div class="flex items-center space-x-2"><svg width="32" height="24" viewBox="0 0 32 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M26.6928 5.65956C24.473 5.65956 22.8803 7.6174 21.2452 9.80278C20.224 5.16745 19.0942 0.537415 15.4987 0.537415C11.9031 0.537415 10.7734 5.16745 9.76008 9.79749C8.12501 7.61476 6.53228 5.65427 4.30986 5.65427C2.89439 5.65956 0.5 6.62261 0.5 10.2261L0.515874 16.7822C0.515874 20.3196 2.40493 21.1742 3.5373 21.4811C5.48986 21.989 10.194 22.46 15.4881 22.46C20.7822 22.46 25.489 21.989 27.4415 21.4811C28.5739 21.1847 30.463 20.3196 30.463 16.7822L30.4815 10.2261C30.4815 6.61996 28.1003 5.65956 26.6716 5.65956M15.4987 2.57992C17.655 2.57992 18.4751 6.83162 19.6181 11.93C18.364 13.4724 17.0332 14.7212 15.4987 14.7212C13.9642 14.7212 12.636 13.4724 11.3793 11.93C12.4508 7.15176 13.2763 2.57992 15.4987 2.57992ZM2.55838 16.7822L2.54251 10.2261C2.54251 7.94812 3.77807 7.70207 4.30721 7.70207C5.87614 7.70207 7.55882 10.3187 9.16743 12.4194C8.02976 17.1817 6.8286 20.092 3.99237 19.4888C3.25421 19.2877 2.55838 18.8195 2.55838 16.7822ZM8.11443 20.0973C9.36851 18.7321 10.1702 16.605 10.7813 14.3508C12.1042 15.7239 13.6096 16.7637 15.4881 16.7637C17.3666 16.7637 18.8826 15.7239 20.1975 14.3508C20.806 16.6023 21.605 18.7321 22.8618 20.0973C20.6684 20.2984 18.0254 20.4175 15.4881 20.4175C12.9508 20.4175 10.3077 20.2984 8.11443 20.0973ZM28.439 16.7822C28.439 18.8195 27.7431 19.2877 27.005 19.4888C24.1661 20.0894 22.9676 17.1844 21.8326 12.4194C23.4385 10.3266 25.1239 7.70207 26.6928 7.70207C27.2219 7.70207 28.4575 7.94812 28.4575 10.2261L28.439 16.7822Z" fill="#415377"></path></svg><p class="text-lg font-semibold leading-none">Become our next author!</p></div><a class="c-button c-button--white c-button--xs space-x-1.5 text-sm" href="/write-for-us.html"><span>Find out more</span></a></div></section><section class="relative flex px-4 sm:px-0 bg-gray-100 || content-visibility-auto"><div class="absolute h-1/3 sm:h-1/3 inset-x-0 inset-y-0 bg-white"></div><div class="z-10 w-full max-w-4xl sm:px-8 lg:px-0 mx-auto"><aside class="sm:flex space-y-6 sm:space-y-0 mx-auto px-4 sm:px-8 md:px-16 py-6 sm:py-8 md:py-12 bg-purple-700 text-white rounded-lg"><div class="sm:pr-16"><div class="w-28 sm:w-32"><img alt="Newsletter Logo" loading="lazy" width="206" height="106" decoding="async" data-nimg="1" style="color:transparent" src="/images/newsletter/logo-ruby.svg"/></div></div><div class="space-y-8"><h1 class="c_h-heading c_h-heading--2xl sm:c_h-heading--3xl"><span class="text-yellow-400">Magicians never share their secrets.</span> <!-- -->But we do. Subscribe to our Ruby Magic email series and get in-depth Ruby articles.</h1><form name="mc-embedded-subscribe-form" action="https://appsignal.us3.list-manage.com/subscribe/post?u=6a5bb0e75a9d07c60a71c7a9f&id=f84e80b4b0" method="post"><div class="space-y-3 lg:space-y-0 lg:flex lg:space-x-3"><div class="space-y-3 md:space-y-0 pb-1 md:pb-0 md:flex md:space-x-2 w-full"><div class="w-full flex-grow"><input placeholder="Email" required="" type="email" class="c-form__input px-3 py-2" name="EMAIL"/></div><div class="w-full flex-grow"><input placeholder="First name" required="" type="text" class="c-form__input px-3 py-2" name="NAME"/></div></div><button class="c-button w-full lg:w-auto flex-none" type="submit" name="subscribe"><span class="text-center mx-auto">Subscribe</span></button></div><div aria-hidden="true" style="position:absolute;left:-5000px"><input tabindex="-1" type="text" name="b_6a5bb0e75a9d07c60a71c7a9f_f84e80b4b0"/></div></form></div></aside></div></section><div class="pb-12 sm:pb-24 bg-gray-100"></div><section class="bg-gradient-to-b from-gray-900 to-blue-800 || content-visibility-auto"><div class="c-container max-w-7xl text-center pt-20 sm:pt-24 overflow-hidden"><div class="max-w-3xl mx-auto space-y-4 sm:space-y-5"><h1 class="c_h-heading c_h-heading--4xl sm:c_h-heading--5xl text-white">AppSignal monitors your apps</h1><p class="text-lg lg:text-xl text-gray-200">AppSignal provides insights for Ruby, Rails, Elixir, Phoenix, Node.js, Express and many other frameworks and libraries. We are located in beautiful Amsterdam. We love<!-- --> <a href="https://www.appsignal.com/waffles" target="_blank" rel="noopener noreferrer">stroopwafels</a>. If you do too,<!-- --> <a href="mailto:contact@appsignal.com">let us know</a>. We might send you some!</p></div><a href="https://www.appsignal.com" class="mt-10 c-button c-button--md c-button--green">Discover AppSignal</a><div class="relative mt-16"><div class="max-h-40 max-w-md mx-auto || sm:hidden"><img alt="AppSignal monitors your apps" loading="lazy" width="552" height="320" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action-small.png&w=640&q=75 1x, /_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action-small.png&w=1200&q=75 2x" src="/_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action-small.png&w=1200&q=75"/></div><div class="max-h-64 md:max-h-80 lg:max-h-100 lg:mb-4 || hidden sm:block"><img alt="AppSignal monitors your apps" loading="lazy" width="1280" height="720" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action.png&w=1920&q=75 1x, /_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action.png&w=3840&q=75 2x" src="/_next/image?url=%2Fimages%2Fgeneral%2Fcall-to-action.png&w=3840&q=75"/></div></div></div></section></main><footer class="relative px-4 py-16 sm:pt-20 xl:pb-28 dark text-gray-300 bg-gray-900"><div class="c-container"><div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-x-12 gap-y-10"><div class="col-span-1"><h2 class="text-white uppercase tracking-wider font-medium border-b border-gray-700 pb-3 mb-4">Features</h2><ul class="space-y-2"><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bug" class="svg-inline--fa fa-bug " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"></path></svg></span><div><a href="https://www.appsignal.com/tour/errors/" class="no-underline text-white undefined sm:text-lg hover:underline">Error tracking</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rabbit-running" class="svg-inline--fa fa-rabbit-running " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M460.7 39.3l-2.2-2.1c-4.7-4.6-11.5-6.4-17.9-4.7s-11.4 6.6-13.1 13l-.8 2.9c-3.3 11.8-5.1 23.7-5.5 35.6c24.3 20.6 42.9 47.8 53.3 78.8c-8.2-1.9-16.5-2.9-25-2.9c-.6 0-1.1 0-1.7 0c-18.4-44-56.5-77.4-103.6-89.3l-3.4-.9c-6.2-1.6-12.9-.6-18.5 2.6c-10.8 6.2-15.6 19.5-11.2 31.1c14.9 39.5 44.3 71.4 81.4 89.7c-3.7 6.6-6.4 14-7.6 21.8L279.7 154.9C248.8 137.3 213.8 128 178.2 128c-32.3 0-62.2 16.8-78.9 44.4C89 159.9 73.4 152 56 152c-30.9 0-56 25.1-56 56s25.1 56 56 56c11.3 0 21.8-3.3 30.6-9.1c4.9 17.2 14.5 33.1 28.4 45.9L257.2 431.2C269 442 284.4 448 300.4 448H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352 335.2 320V340.5c0-42.9-28.4-80.5-69.6-92.3l-30.8-8.8c-8.5-2.4-13.4-11.3-11-19.8s11.3-13.4 19.8-11l30.8 8.8c55 15.7 92.8 65.9 92.8 123.1v15.7l56-32.4 6.4-3.7H515.7c33.3 0 60.3-27 60.3-60.3c0-18.1-8.2-35.3-22.2-46.7l-34.6-28.2c-4.6-3.7-9.4-7.1-14.5-10c8.4-49.3-7.8-100-43.9-135.5zm-318.5 382c-14.7 9.8-18.7 29.7-8.9 44.4s29.7 18.7 44.4 8.9l46-30.7-48.6-44.5-32.9 22zM480 240a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"></path></svg></span><div><a href="https://www.appsignal.com/tour/performance" class="no-underline text-white undefined sm:text-lg hover:underline">Performance monitoring</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="server" class="svg-inline--fa fa-server " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"></path></svg></span><div><a href="https://www.appsignal.com/tour/hosts" class="no-underline text-white undefined sm:text-lg hover:underline">Host monitoring</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="siren-on" class="svg-inline--fa fa-siren-on " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M69.3 36l48 32c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-48-32c-11-7.4-14-22.3-6.7-33.3s22.3-14 33.3-6.7zM597.3 76l-48 32c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l48-32c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3zM24 192H88c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm528 0h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552c-13.3 0-24-10.7-24-24s10.7-24 24-24zM144 352l25-199.9c4-32 31.2-56.1 63.5-56.1h175c32.3 0 59.5 24 63.5 56.1L496 352H234.1l21.8-174c1.1-8.8-5.1-16.8-13.9-17.9s-16.8 5.1-17.9 13.9L201.9 352H144zM96 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416z"></path></svg></span><div><a href="https://www.appsignal.com/tour/anomaly-detection" class="no-underline text-white undefined sm:text-lg hover:underline">Anomaly detection</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="traffic-light" class="svg-inline--fa fa-traffic-light " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"></path></svg></span><div><a href="https://www.appsignal.com/tour/uptime-monitoring" class="no-underline text-white undefined sm:text-lg hover:underline">Uptime monitoring</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></span><div><a href="https://www.appsignal.com/tour/metrics" class="no-underline text-white undefined sm:text-lg hover:underline">Metric dashboards</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users" class="svg-inline--fa fa-users " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"></path></svg></span><div><a href="https://www.appsignal.com/tour/workflow" class="no-underline text-white undefined sm:text-lg hover:underline">Workflow</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="line-columns" class="svg-inline--fa fa-line-columns " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M224 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H192c17.7 0 32-14.3 32-32zm0 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM0 320c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM224 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H192c17.7 0 32-14.3 32-32zM288 64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 192c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32zM288 320c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32zM512 448c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32z"></path></svg></span><div><a href="https://www.appsignal.com/tour/log-management" class="no-underline text-white undefined sm:text-lg hover:underline">Log management</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gauge-high" class="svg-inline--fa fa-gauge-high " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path></svg></span><div><a href="https://www.appsignal.com/tour/automated-dashboards" class="no-underline text-white undefined sm:text-lg hover:underline">Automated Dashboards</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square-check" class="svg-inline--fa fa-square-check " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"></path></svg></span><div><a href="https://www.appsignal.com/tour/check-ins" class="no-underline text-white undefined sm:text-lg hover:underline">Check-ins</a></div></div></li><li><div class="flex items-center space-x-3"><span class="h-4 w-4 flex justify-center items-center"></span><div><a href="https://www.appsignal.com/tour/time-detective" class="no-underline text-white undefined sm:text-lg hover:underline">Time Detective</a></div></div></li></ul></div><div class="col-span-1"><h2 class="text-white uppercase tracking-wider font-medium border-b border-gray-700 pb-3 mb-4">Resources</h2><ul class="space-y-2"><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/plans" class="no-underline text-white undefined sm:text-lg hover:underline">Plans & pricing</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://docs.appsignal.com/" class="no-underline text-white undefined sm:text-lg hover:underline">Documentation</a></div></div></li><li><div class="flex items-center space-x-3"><div><a class="no-underline text-white undefined sm:text-lg hover:underline" href="/">Blog</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/customers" class="no-underline text-white undefined sm:text-lg hover:underline">Customer Stories</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/alternative/datadog-alternative" class="no-underline text-white undefined sm:text-lg hover:underline">Compare AppSignal to Datadog</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/alternative/new-relic-alternative" class="no-underline text-white undefined sm:text-lg hover:underline">Compare AppSignal to New Relic</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/alternative/sentry-alternative" class="no-underline text-white undefined sm:text-lg hover:underline">Compare AppSignal to Sentry</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/changelog" class="no-underline text-white undefined sm:text-lg hover:underline">Changelog</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/learning-center" class="no-underline text-white undefined sm:text-lg hover:underline">Learning Center</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/why" class="no-underline text-white undefined sm:text-lg hover:underline">Why AppSignal</a></div></div></li></ul></div><div class="col-span-1"><h2 class="text-white uppercase tracking-wider font-medium border-b border-gray-700 pb-3 mb-4">Support</h2><p class="text-sm mb-4">Do you need help, have a feature request or just need someone to rubber duck with? Get in touch with one of our engineers.</p><ul class="space-y-2"><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/contact" class="no-underline text-white undefined sm:text-lg hover:underline">Contact us</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="mailto:support@appsignal.com" class="no-underline text-white undefined sm:text-lg hover:underline">Live chat</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://status.appsignal.com/" class="no-underline text-white undefined sm:text-lg hover:underline">Status</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/security" class="no-underline text-white undefined sm:text-lg hover:underline">Security</a></div></div></li></ul></div><div class="col-span-1"><h2 class="text-white uppercase tracking-wider font-medium border-b border-gray-700 pb-3 mb-4">About us</h2><p class="text-sm mb-4"><span>AppSignal is located in the beautiful Netherlands. We love<!-- --> <a href="https://www.appsignal.com/waffles">stroopwafels</a>. If you do too, <a href="mailto:support@appsignal.com">let us know</a>. We might send you some!</span></p><ul class="space-y-2"><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/about" class="no-underline text-white undefined sm:text-lg hover:underline">About</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/jobs" class="no-underline text-white undefined sm:text-lg hover:underline">Jobs</a></div></div></li><li><div class="flex items-center space-x-3"><div><a class="no-underline text-white undefined sm:text-lg hover:underline" href="/write-for-us">Write for Our Blog</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/diversity" class="no-underline text-white undefined sm:text-lg hover:underline">Diversity</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://www.appsignal.com/open-source" class="no-underline text-white undefined sm:text-lg hover:underline">Open Source</a></div></div></li><li><div class="flex items-center space-x-3"><div><a href="https://twitter.com/appsignal" class="no-underline text-white undefined sm:text-lg hover:underline">Twitter</a></div></div></li></ul></div><div class="col-span-1 sm:col-span-2 xl:col-span-4"><h2 class="text-white uppercase tracking-wider font-medium border-b border-gray-700 pb-3 mb-4">Languages</h2><div class="grid grid-cols-1 sm:grid-cols-3 gap-6 sm:gap-12"><div class="space-y-6 sm:space-y-12 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-12"><ul class="space-y-2"><li><div class="flex items-center space-x-2"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gem" class="svg-inline--fa fa-gem " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"></path></svg></span><div><a href="https://www.appsignal.com/ruby" class="no-underline text-white text-lg sm:text-lg hover:underline">Ruby</a></div></div><p class="mt-1"><span class="sm:block"><a href="https://www.appsignal.com/ruby/active-record-monitoring" class="no-underline hover:underline">Active Record</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/capistrano-monitoring" class="no-underline hover:underline">Capistrano</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/delayed-job-monitoring" class="no-underline hover:underline">Delayed::Job</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/garbage-collection-monitoring" class="no-underline hover:underline">Garbage Collection</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/global-vm-lock-monitoring" class="no-underline hover:underline">Global VM Lock</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/grape-monitoring" class="no-underline hover:underline">Grape</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/graphql-monitoring" class="no-underline hover:underline">GraphQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/hanami-monitoring" class="no-underline hover:underline">Hanami</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/mongodb-monitoring" class="no-underline hover:underline">MongoDB</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/padrino-monitoring" class="no-underline hover:underline">Padrino</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/puma-monitoring" class="no-underline hover:underline">Puma</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/que-monitoring" class="no-underline hover:underline">Que</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/rails-monitoring" class="no-underline hover:underline">Ruby on Rails</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/rake-monitoring" class="no-underline hover:underline">Rake</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/resque-monitoring" class="no-underline hover:underline">Resque</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/shoryuken-monitoring" class="no-underline hover:underline">Shoryuken</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/sidekiq-monitoring" class="no-underline hover:underline">Sidekiq</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/sinatra-monitoring" class="no-underline hover:underline">Sinatra</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/solid-queue-monitoring" class="no-underline hover:underline">Solid Queue</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/view-component-monitoring" class="no-underline hover:underline">ViewComponent</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/ruby/webmachine-monitoring" class="no-underline hover:underline">Webmachine</a><span class="sm:hidden"></span></span></p></li></ul><ul class="space-y-2"><li><div class="flex items-center space-x-2"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="droplet" class="svg-inline--fa fa-droplet " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"></path></svg></span><div><a href="https://www.appsignal.com/elixir" class="no-underline text-white text-lg sm:text-lg hover:underline">Elixir</a></div></div><p class="mt-1"><span class="sm:block"><a href="https://www.appsignal.com/elixir/absinthe-monitoring" class="no-underline hover:underline">Absinthe</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/ecto-monitoring" class="no-underline hover:underline">Ecto</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/erlang-monitoring" class="no-underline hover:underline">Erlang</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/finch-monitoring" class="no-underline hover:underline">Finch</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/oban-monitoring" class="no-underline hover:underline">Oban</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/phoenix-monitoring" class="no-underline hover:underline">Phoenix</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/plug-monitoring" class="no-underline hover:underline">Plug</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/elixir/tesla-monitoring" class="no-underline hover:underline">Tesla</a><span class="sm:hidden"></span></span></p></li></ul></div><div class="space-y-6 sm:space-y-12 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-12"><ul class="space-y-2"><li><div class="flex items-center space-x-2"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="node-js" class="svg-inline--fa fa-node-js " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"></path></svg></span><div><a href="https://www.appsignal.com/nodejs" class="no-underline text-white text-lg sm:text-lg hover:underline">Node.js</a></div></div><p class="mt-1"><span class="sm:block"><a href="https://www.appsignal.com/nodejs/amqplib-monitoring" class="no-underline hover:underline">AMQPlib</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/apollo-gateway-monitoring" class="no-underline hover:underline">Apollo Gateway</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/bullmq-monitoring" class="no-underline hover:underline">BullMQ</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/express-monitoring" class="no-underline hover:underline">Express</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/fastify-monitoring" class="no-underline hover:underline">Fastify</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/graphql-monitoring" class="no-underline hover:underline">GraphQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/knexjs-monitoring" class="no-underline hover:underline">Knex.js</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/koa-monitoring" class="no-underline hover:underline">Koa</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/mongodb-monitoring" class="no-underline hover:underline">MongoDB</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/mongoose-monitoring" class="no-underline hover:underline">Mongoose</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/mysql-monitoring" class="no-underline hover:underline">MySQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/nestjs-monitoring" class="no-underline hover:underline">NestJS</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/nextjs-monitoring" class="no-underline hover:underline">Next.js</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/pino-monitoring" class="no-underline hover:underline">Pino</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/postgresql-monitoring" class="no-underline hover:underline">PostgreSQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/prisma-monitoring" class="no-underline hover:underline">Prisma</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/redis-monitoring" class="no-underline hover:underline">Redis</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/remix-monitoring" class="no-underline hover:underline">Remix</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/restify-monitoring" class="no-underline hover:underline">Restify</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/nodejs/winston-monitoring" class="no-underline hover:underline">Winston</a><span class="sm:hidden"></span></span></p></li></ul><ul class="space-y-2"><li><div class="flex items-center space-x-2"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="square-js" class="svg-inline--fa fa-square-js " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"></path></svg></span><div><a href="https://www.appsignal.com/javascript" class="no-underline text-white text-lg sm:text-lg hover:underline">JavaScript</a></div></div><p class="mt-1"><span class="sm:block"><a href="https://www.appsignal.com/javascript/react-monitoring" class="no-underline hover:underline">React</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/javascript/vue-monitoring" class="no-underline hover:underline">Vue</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/javascript/angular-monitoring" class="no-underline hover:underline">Angular</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/javascript/ember-monitoring" class="no-underline hover:underline">Ember</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/javascript/preact-monitoring" class="no-underline hover:underline">Preact</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/javascript/stimulus-monitoring" class="no-underline hover:underline">Stimulus</a><span class="sm:hidden"></span></span></p></li></ul></div><div class="space-y-6 sm:space-y-12 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-12"><ul class="space-y-2"><li><div class="flex items-center space-x-2"><span class="h-4 w-4 flex justify-center items-center"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="python" class="svg-inline--fa fa-python " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"></path></svg></span><div><a href="https://www.appsignal.com/python" class="no-underline text-white text-lg sm:text-lg hover:underline">Python</a></div></div><p class="mt-1"><span class="sm:block"><a href="https://www.appsignal.com/python/celery-monitoring" class="no-underline hover:underline">Celery</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/django-monitoring" class="no-underline hover:underline">Django</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/fastapi-monitoring" class="no-underline hover:underline">FastAPI</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/flask-monitoring" class="no-underline hover:underline">Flask</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/jinja2-monitoring" class="no-underline hover:underline">Jinja2</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/mysql-monitoring" class="no-underline hover:underline">MySQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/pika-monitoring" class="no-underline hover:underline">Pika</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/postgresql-monitoring" class="no-underline hover:underline">PostgreSQL</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/redis-monitoring" class="no-underline hover:underline">Redis</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/request-monitoring" class="no-underline hover:underline">Request</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/sqlalchemy-monitoring" class="no-underline hover:underline">SQLAlchemy</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/sqlite-monitoring" class="no-underline hover:underline">SQLite</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/starlette-monitoring" class="no-underline hover:underline">Starlette</a><span class="sm:hidden">, </span></span><span class="sm:block"><a href="https://www.appsignal.com/python/wsgi-asgi-monitoring" class="no-underline hover:underline">WSGI and ASGI</a><span class="sm:hidden"></span></span></p></li></ul><ul class="space-y-2"><li><div class="flex items-center space-x-2"><div><a class="no-underline text-white text-lg sm:text-lg hover:underline"></a></div></div></li></ul></div></div></div><div class="col-span-1 sm:col-span-2 xl:col-span-4 border-t border-gray-800 pt-6 xl:flex xl:items-center xl:justify-between"><div class="w-[168px] h-[31px] mb-4 xl:mb-0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350.92 64.54"><g fill="#fff"><path d="M341.56 12.58c-5.46 0-9.37 4.82-13.39 10.18C325.68 11.38 322.9 0 314.07 0S302.46 11.38 300 22.76c-4-5.36-7.93-10.18-13.39-10.18-3.47 0-9.35 2.37-9.35 11.22v16.11c0 8.69 4.64 10.82 7.42 11.54 4.8 1.25 16.36 2.4 29.37 2.4s24.57-1.15 29.36-2.4c2.79-.72 7.43-2.85 7.43-11.54V23.8c0-8.85-5.88-11.22-9.36-11.22M314.07 5c5.29 0 7.3 10.44 10.12 23-3.09 3.79-6.36 6.86-10.12 6.86S307 31.78 304 28c2.63-11.72 4.65-23 10.12-23m-31.84 34.91V23.8c0-5.59 3-6.2 4.33-6.2 3.85 0 8 6.43 11.94 11.59-2.83 11.71-5.78 18.81-12.75 17.37-1.82-.5-3.52-1.65-3.52-6.65M296 48.05c3-3.35 5-8.58 6.5-14.12 3.23 3.38 6.95 5.93 11.57 5.93s8.33-2.55 11.56-5.93c1.5 5.54 3.47 10.77 6.55 14.12-5.39.5-11.88.79-18.11.79s-12.73-.29-18.12-.79m49.91-8.14c0 5-1.71 6.15-3.52 6.65-7 1.48-9.93-5.66-12.72-17.37 3.95-5.16 8.09-11.59 11.94-11.59 1.3 0 4.34.61 4.34 6.2ZM1.13 52.07a1.12 1.12 0 0 1-.79-.34 1.16 1.16 0 0 1-.34-.85 1.52 1.52 0 0 1 .11-.52L14 13.74a2 2 0 0 1 .62-1 1.81 1.81 0 0 1 1.25-.4h5a1.81 1.81 0 0 1 1.25.4 2.44 2.44 0 0 1 .68 1l13.82 36.62a2.52 2.52 0 0 1 .06.52 1.16 1.16 0 0 1-.34.85 1.12 1.12 0 0 1-.79.34h-3.92a1.4 1.4 0 0 1-1.07-.37 2.41 2.41 0 0 1-.46-.7l-2.89-7.48H9.47L6.63 51a2 2 0 0 1-.48.66 1.5 1.5 0 0 1-1.1.37Zm10.15-14.18H25.4l-7.09-18.82ZM42.52 62.84a1.25 1.25 0 0 1-1.3-1.31V23.89a1.24 1.24 0 0 1 1.3-1.3h3.57a1.25 1.25 0 0 1 1.31 1.3v2.38a11.6 11.6 0 0 1 3.62-3A11.35 11.35 0 0 1 56.58 22a12.67 12.67 0 0 1 5.33 1 10.13 10.13 0 0 1 3.68 2.83 12.56 12.56 0 0 1 2.24 4.26 19.79 19.79 0 0 1 .88 5.21c0 .64.06 1.31.06 2s0 1.34-.06 2a18.1 18.1 0 0 1-.82 5.16 13.14 13.14 0 0 1-2.24 4.22 10.21 10.21 0 0 1-3.71 2.89 12.56 12.56 0 0 1-5.36 1.05 11.36 11.36 0 0 1-5.36-1.16 10.55 10.55 0 0 1-3.54-3v13a1.27 1.27 0 0 1-.37.94 1.38 1.38 0 0 1-1 .37ZM55 47.3a6.63 6.63 0 0 0 4.17-1.16 6.53 6.53 0 0 0 2.18-3 14.43 14.43 0 0 0 .8-4.14 25.8 25.8 0 0 0 0-3.29 14.43 14.43 0 0 0-.8-4.14 6.58 6.58 0 0 0-2.18-3A6.69 6.69 0 0 0 55 27.35a6.44 6.44 0 0 0-6.49 4.22 12.43 12.43 0 0 0-.82 3.77q-.06 1-.06 2.16c0 .79 0 1.53.06 2.21a9.3 9.3 0 0 0 .85 3.6 7.15 7.15 0 0 0 2.38 2.86A6.83 6.83 0 0 0 55 47.3ZM75.71 62.84a1.27 1.27 0 0 1-1.3-1.31V23.89a1.25 1.25 0 0 1 1.3-1.3h3.58a1.29 1.29 0 0 1 .93.36 1.27 1.27 0 0 1 .37.94v2.38a11.53 11.53 0 0 1 3.63-3A11.29 11.29 0 0 1 89.77 22a12.64 12.64 0 0 1 5.33 1 10.16 10.16 0 0 1 3.69 2.83 12.74 12.74 0 0 1 2.21 4.3 20.21 20.21 0 0 1 .88 5.21v4a18.1 18.1 0 0 1-.83 5.16 12.94 12.94 0 0 1-2.24 4.22 10.21 10.21 0 0 1-3.71 2.89 12.53 12.53 0 0 1-5.36 1.05 11.31 11.31 0 0 1-5.35-1.16 10.49 10.49 0 0 1-3.55-3v13a1.27 1.27 0 0 1-.37.94 1.34 1.34 0 0 1-1 .37ZM88.19 47.3a6.1 6.1 0 0 0 6.35-4.19 14.43 14.43 0 0 0 .79-4.11 25.8 25.8 0 0 0 0-3.29 14.43 14.43 0 0 0-.79-4.14 6.1 6.1 0 0 0-6.35-4.19 6.44 6.44 0 0 0-6.5 4.22 12.74 12.74 0 0 0-.82 3.77c0 .64-.05 1.36-.05 2.16s0 1.53.05 2.21a9.3 9.3 0 0 0 .85 3.6 7.15 7.15 0 0 0 2.38 2.86 6.84 6.84 0 0 0 4.09 1.1ZM122.17 52.63a21.18 21.18 0 0 1-8.56-1.53 12.82 12.82 0 0 1-5.27-4 9.44 9.44 0 0 1-1.93-5.25 1.1 1.1 0 0 1 .34-.79 1.15 1.15 0 0 1 .85-.34h4a1.47 1.47 0 0 1 1 .31 2.75 2.75 0 0 1 .57.76 6.36 6.36 0 0 0 1.36 2.39 7.72 7.72 0 0 0 2.86 2 12.06 12.06 0 0 0 4.73.79q4.48 0 6.61-1.53a4.88 4.88 0 0 0 2.12-4.19 3.83 3.83 0 0 0-1.13-2.87 10.56 10.56 0 0 0-3.52-2c-1.58-.6-3.64-1.25-6.17-1.93a36.52 36.52 0 0 1-7-2.55 10.29 10.29 0 0 1-4.19-3.57 9.81 9.81 0 0 1-1.39-5.44 9.72 9.72 0 0 1 1.73-5.67 11.66 11.66 0 0 1 4.93-3.94 18.66 18.66 0 0 1 7.68-1.45 19 19 0 0 1 6.35 1 14 14 0 0 1 4.57 2.55 11.53 11.53 0 0 1 2.77 3.4 8.31 8.31 0 0 1 1 3.57 1.18 1.18 0 0 1-.32.77 1.09 1.09 0 0 1-.87.37h-4.14a1.83 1.83 0 0 1-.88-.23 1.5 1.5 0 0 1-.65-.85 5.22 5.22 0 0 0-2.44-3.46 9.49 9.49 0 0 0-5.39-1.42 10.19 10.19 0 0 0-5.41 1.28 4.35 4.35 0 0 0-2.07 4 4.24 4.24 0 0 0 1 2.89 8.38 8.38 0 0 0 3.18 2 58.53 58.53 0 0 0 5.75 1.9 43.26 43.26 0 0 1 7.76 2.54 10.38 10.38 0 0 1 4.4 3.51 9.64 9.64 0 0 1 1.41 5.42 10 10 0 0 1-1.95 6.2 12.32 12.32 0 0 1-5.44 4 22 22 0 0 1-8.25 1.36ZM143.77 17.37a1.34 1.34 0 0 1-1-.37 1.24 1.24 0 0 1-.37-.93v-3.58a1.34 1.34 0 0 1 .37-1 1.32 1.32 0 0 1 1-.4h4.31a1.39 1.39 0 0 1 1 .4 1.29 1.29 0 0 1 .4 1v3.58a1.2 1.2 0 0 1-.4.93 1.41 1.41 0 0 1-1 .37Zm.34 34.7a1.38 1.38 0 0 1-1-.37 1.27 1.27 0 0 1-.37-.94V23.89a1.27 1.27 0 0 1 .37-.94 1.37 1.37 0 0 1 1-.36h3.69a1.25 1.25 0 0 1 1.3 1.3v26.87a1.27 1.27 0 0 1-.37.94 1.28 1.28 0 0 1-.93.37ZM168.5 64.54a17.5 17.5 0 0 1-6.58-1.05 12.16 12.16 0 0 1-4-2.52 9.27 9.27 0 0 1-2.09-2.97 8.1 8.1 0 0 1-.65-2.38 1.13 1.13 0 0 1 .34-1 1.3 1.3 0 0 1 1-.39h3.86a1.51 1.51 0 0 1 .85.22 1.8 1.8 0 0 1 .56 1 11.19 11.19 0 0 0 1 1.73 5 5 0 0 0 1.93 1.61 7.69 7.69 0 0 0 3.57.68 11 11 0 0 0 4.05-.65 4.82 4.82 0 0 0 2.5-2.3 9.59 9.59 0 0 0 .87-4.47v-3.84a10.93 10.93 0 0 1-3.64 2.79 11.93 11.93 0 0 1-5.38 1.08 12.69 12.69 0 0 1-5.36-1 9.78 9.78 0 0 1-3.69-2.86 13.36 13.36 0 0 1-2.21-4.28 18.82 18.82 0 0 1-.82-5.27q-.06-1.53 0-3.12a18.94 18.94 0 0 1 .8-5.16 12.85 12.85 0 0 1 2.21-4.39 10.34 10.34 0 0 1 3.71-2.94 12.23 12.23 0 0 1 5.36-1.06 11.1 11.1 0 0 1 5.52 1.25 11.77 11.77 0 0 1 3.66 3.06V24a1.37 1.37 0 0 1 .37-1 1.31 1.31 0 0 1 1-.39h3.57a1.33 1.33 0 0 1 1.35 1.39v27.39a16.14 16.14 0 0 1-1.38 6.91 10 10 0 0 1-4.4 4.59 16.32 16.32 0 0 1-7.88 1.65Zm-.17-17.69a6.62 6.62 0 0 0 4.11-1.19 7.39 7.39 0 0 0 2.33-3 10.87 10.87 0 0 0 .87-3.71c0-.49.06-1.12.06-1.9s0-1.39-.06-1.84a11.09 11.09 0 0 0-.87-3.74 7.13 7.13 0 0 0-2.33-3 6.74 6.74 0 0 0-4.11-1.16 6.85 6.85 0 0 0-4.17 1.16 6.49 6.49 0 0 0-2.24 3 14.43 14.43 0 0 0-.79 4.14v2.84a14.62 14.62 0 0 0 .79 4.11 6.52 6.52 0 0 0 2.24 3.06 6.85 6.85 0 0 0 4.17 1.23ZM190.13 52.07a1.38 1.38 0 0 1-1-.37 1.31 1.31 0 0 1-.37-.94V23.89a1.31 1.31 0 0 1 .37-.94 1.37 1.37 0 0 1 1-.36h3.63a1.25 1.25 0 0 1 1.31 1.3v2.44a12.29 12.29 0 0 1 3.8-3.09 11.91 11.91 0 0 1 5.72-1.24 11.34 11.34 0 0 1 6.12 1.59 10.28 10.28 0 0 1 3.92 4.41 15.55 15.55 0 0 1 1.37 6.77v16a1.25 1.25 0 0 1-.4.94 1.39 1.39 0 0 1-1 .37h-3.92a1.28 1.28 0 0 1-.93-.37 1.27 1.27 0 0 1-.37-.94V35.06a8.33 8.33 0 0 0-1.79-5.67 6.45 6.45 0 0 0-5.13-2 6.84 6.84 0 0 0-5.18 2 7.83 7.83 0 0 0-2 5.67v15.7a1.22 1.22 0 0 1-.4.94 1.37 1.37 0 0 1-1 .37ZM230.92 52.63a11.76 11.76 0 0 1-5.25-1.16 9.93 9.93 0 0 1-3.74-3.09 7.31 7.31 0 0 1-1.39-4.38 7.42 7.42 0 0 1 3.18-6.27 18.1 18.1 0 0 1 8.39-3.09l8-1.19v-1.4a5.5 5.5 0 0 0-1.36-4c-.91-.94-2.42-1.41-4.54-1.41a6.9 6.9 0 0 0-3.74.9 5.22 5.22 0 0 0-2 2.44 1.32 1.32 0 0 1-1.25.74h-3.51a1.2 1.2 0 0 1-.94-.34 1.34 1.34 0 0 1-.31-.91 5.88 5.88 0 0 1 .71-2.12 8.28 8.28 0 0 1 2.07-2.5 11.76 11.76 0 0 1 3.66-2 15.47 15.47 0 0 1 5.35-.82 17.06 17.06 0 0 1 5.9.88 9.93 9.93 0 0 1 3.8 2.35 9.17 9.17 0 0 1 2.07 3.4 12.46 12.46 0 0 1 .65 4v18.1a1.22 1.22 0 0 1-.4.94 1.37 1.37 0 0 1-1 .37h-3.63a1.25 1.25 0 0 1-1.3-1.31v-2.38a9.3 9.3 0 0 1-2 2 10.74 10.74 0 0 1-3 1.62 13.85 13.85 0 0 1-4.42.63Zm1.59-4.82a8.24 8.24 0 0 0 3.91-.93A6.74 6.74 0 0 0 239.2 44a10.38 10.38 0 0 0 1-4.88v-1.4l-6.13 1a13.25 13.25 0 0 0-5.52 1.75 3.66 3.66 0 0 0-1.85 3.06 3.46 3.46 0 0 0 .85 2.41 5.33 5.33 0 0 0 2.16 1.42 8 8 0 0 0 2.8.45ZM254.47 52.07a1.25 1.25 0 0 1-1.3-1.31V13.12a1.25 1.25 0 0 1 1.3-1.31h3.74a1.25 1.25 0 0 1 1.3 1.31v37.64a1.25 1.25 0 0 1-1.3 1.31Z"></path></g></svg></div><ul><li class="mb-2 xl:mb-0 sm:inline-block sm:mr-4 sm:last:mr-0 xl:mr-12"><a href="https://www.appsignal.com/terms" class="no-underline hover:underline">Terms & Conditions</a></li><li class="mb-2 xl:mb-0 sm:inline-block sm:mr-4 sm:last:mr-0 xl:mr-12"><a href="https://www.appsignal.com/privacy-policy" class="no-underline hover:underline">Privacy Policy</a></li><li class="mb-2 xl:mb-0 sm:inline-block sm:mr-4 sm:last:mr-0 xl:mr-12"><a href="https://www.appsignal.com/cookie-policy" class="no-underline hover:underline">Cookie Policy</a></li><li class="mb-2 xl:mb-0 sm:inline-block sm:mr-4 sm:last:mr-0 xl:mr-12"><a href="https://docs.appsignal.com/appsignal/gdpr.html" class="no-underline hover:underline">GDPR compliance</a></li><li class="mb-2 xl:mb-0 sm:inline-block sm:mr-4 sm:last:mr-0 xl:mr-12"><a href="https://www.appsignal.com/contact" class="no-underline hover:underline">Contact us / Imprint</a></li></ul></div></div></div></footer></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"post":{"categoryConfig":{"name":"AppSignal","theme":{"style":{"textColor":"text-blue-500","textColorLight":"text-blue-200","bgColor":"bg-blue-800","bgColorVariant":"bg-blue-700"},"menu":"c_h-tabs__tab--active c_h-tabs__tab--blue"}},"authors":[{"about":"Stefan often shares stories about his Mosaic script-kiddie years. Has been scaling startups since the 90s. Today, he does management and growth things at AppSignal. Has amazing Excel to SQL chops on his customized MacBook.","name":"Stefan Verkerk","image":"/images/authors/stefan.jpg","slug":"stefan-verkerk"}],"series":[],"slug":"2020/05/14/new-integration-postgresql-instrumented-for-node-js","socialImg":"https://ondemand.bannerbear.com/signedurl/vYR1M6Lyq22EAnXbgZ/image.jpg?modifications=W3sibmFtZSI6InRpdGxlIiwidGV4dCI6Ik5ldyBJbnRlZ3JhdGlvbjogUG9zdGdyZVNRTCBJbnN0cnVtZW50ZWQgZm9yIE5vZGUuanMifSx7Im5hbWUiOiJpbWFnZSIsImltYWdlX3VybCI6Imh0dHBzOi8vYXBwc2lnbmFsLW5leHRqcy1ibG9nLTdoYzlub2p5ZC1hcHBzaWduYWwudmVyY2VsLmFwcC9pbWFnZXMvYmxvZy8yMDIwLTA1L2FwcHNpZ25hbC1wb3N0Z3Jlcy1ub2RlLmpwZyJ9LHsibmFtZSI6ImNhdGVnb3J5X2xvZ28iLCJpbWFnZV91cmwiOiJodHRwczovL2FwcHNpZ25hbC1uZXh0anMtYmxvZy03aGM5bm9qeWQtYXBwc2lnbmFsLnZlcmNlbC5hcHAvaW1hZ2VzL2xvZ29zL2FwcHNpZ25hbC1sb2dvLnBuZyJ9XQ\u0026s=2b4ae4ef6ea63a9a861ee1eb2b9576e118c5f2acfa1f83356750d61cc454cfdf","jsonLd":{"type":"BlogPosting","url":"https://blog.appsignal.com/2020/05/14/new-integration-postgresql-instrumented-for-node-js.html","title":"New Integration: PostgreSQL Instrumented for Node.js","description":"A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library.","images":["https://ondemand.bannerbear.com/signedurl/vYR1M6Lyq22EAnXbgZ/image.jpg?modifications=W3sibmFtZSI6InRpdGxlIiwidGV4dCI6Ik5ldyBJbnRlZ3JhdGlvbjogUG9zdGdyZVNRTCBJbnN0cnVtZW50ZWQgZm9yIE5vZGUuanMifSx7Im5hbWUiOiJpbWFnZSIsImltYWdlX3VybCI6Imh0dHBzOi8vYXBwc2lnbmFsLW5leHRqcy1ibG9nLTdoYzlub2p5ZC1hcHBzaWduYWwudmVyY2VsLmFwcC9pbWFnZXMvYmxvZy8yMDIwLTA1L2FwcHNpZ25hbC1wb3N0Z3Jlcy1ub2RlLmpwZyJ9LHsibmFtZSI6ImNhdGVnb3J5X2xvZ28iLCJpbWFnZV91cmwiOiJodHRwczovL2FwcHNpZ25hbC1uZXh0anMtYmxvZy03aGM5bm9qeWQtYXBwc2lnbmFsLnZlcmNlbC5hcHAvaW1hZ2VzL2xvZ29zL2FwcHNpZ25hbC1sb2dvLnBuZyJ9XQ\u0026amp;s=2b4ae4ef6ea63a9a861ee1eb2b9576e118c5f2acfa1f83356750d61cc454cfdf"],"datePublished":"2020-05-14T00:00:00+00:00","dateModified":"2020-05-14T00:00:00+00:00","authorName":[{"type":"Person","name":"Stefan Verkerk","url":"https://blog.appsignal.com/authors/stefan-verkerk.html"}],"publisherName":"AppSignal","publisherLogo":"https://appsignal.com/images/logo-appsignal.svg"},"title":"New Integration: PostgreSQL Instrumented for Node.js","intro":"A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library.","category":"appsignal","tags":"product, javascript, appsignal","author":"Stefan Verkerk","image":"/images/blog/2020-05/appsignal-postgres-node.jpg","opacity":7,"headerType":"legacy","facebook":"/images/blog/2020-05/appsignal-postgres-node-facebook.jpg","twitter":"/images/blog/2020-05/appsignal-postgres-node-twitter.jpg","date":"2020-05-14T00:00:00+00:00","body":{"raw":"\nToday鈥檚 release of Node.js integration supports PostgreSQL as well as all the consumers of the `pg` library.\n\n## Doing the Instrumentation FOR You\n\nAppSignal does as much work as it can for you. We aim for your whole stack to be automatically instrumented, so that you can spend your time writing and improving code. We love products that put the user鈥檚 convenience over the maker鈥檚, so that鈥檚 what we have done with AppSignal as well. You can install AppSignal in 5 minutes and get a lot of things instrumented right away.\n\nIn the coming weeks, we will be rolling out a whole array of integrations on Node.js one by one. This means that more and more parts will be instrumented without you doing any work. Well, except upgrading to the latest [AppSignal `npm` package](https://www.npmjs.com/package/@appsignal/nodejs) and installing the `pg` plugin. [Check out our documentation to get going](https://github.com/appsignal/appsignal-nodejs/tree/master/packages/pg#appsignalpg).\n\nAppSignal's combination of error tracking, performance monitoring, host metrics and custom metric dashboards helps you solve your issues seamlessly. All of these things work out of the box for Node.js.\n\n## Improving Performance with AppSignal's PostgreSQL Integration\n\nWith today鈥檚 integration update, you will see a more detailed breakdown of the events within a particular request. Today鈥檚 release enables this for `knex`, `bookshelfjs`, `typeORM` and all other consumers of the `pg` library. Here鈥檚 an example where you can see the duration of a PostgreSQL process within a sample:\n\n![IncidentPageWithPostGreSQL](/images/blog/2020-05/screenshot-1.png)\n\nIf we zoom in further on the performance of this sample, further down the page you'll find a timeline of all events. This now has your PostgreSQL consumers detailed.\n\n![IncidentPageTimelineWithPostGreSQL](/images/blog/2020-05/screenshot-2.png)\n\nThe integration shows you the tracing for database calls, so you can see what query is the root of your evil (or genius) 馃槈.\n\n![IncidentPageTracingWithPostGreSQL](/images/blog/2020-05/screenshot-3.png)\n\nIf the root of some evil turns out to be a repeated database query know as an N+1 query, we specifically label those so that it鈥檚 easier to find. On the\nperformance sample screen we looked at before, you can then see what role they play in the timeline for that sample. For example, it can show `N+32` there, so you immediately get a glance on how much lazy loading led to this.\n\n![IncidentPageWithNPlusOnePostGreSQL](/images/blog/2020-05/screenshot-4.png)\n\nIf you want to solve these N+1 issues before they lead to any issues, you can see them all flagged on the Performance issue list page.\n\n## Installing Takes Minutes and Brings You ~~Stroopwafels for Days~~ Insights Forever\n\nIf we made you curious, you can get AppSignal installed and reporting in 5 minutes. Meanwhile we鈥檒l go back to [~~munching stroopwafels~~](https://www.appsignal.com/waffles) working on the Next (hint, hint) integration 馃槈\n\nPS. [Drop us a note](mailto:support@appsignal.com?subject=NodeStroopWafelsPlease) if you are trying AppSignal and want to have some stroopwafels and swag to go with that.\n","code":"var Component=(()=\u003e{var p=Object.create;var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var o in e)s(n,o,{get:e[o],enumerable:!0})},r=(n,e,o,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let a of d(e))!m.call(n,a)\u0026\u0026a!==o\u0026\u0026s(n,a,{get:()=\u003ee[a],enumerable:!(i=c(e,a))||i.enumerable});return n};var y=(n,e,o)=\u003e(o=n!=null?p(u(n)):{},r(e||!n||!n.__esModule?s(o,\"default\",{value:n,enumerable:!0}):o,n)),b=n=\u003er(s({},\"__esModule\",{value:!0}),n);var h=f((x,l)=\u003e{l.exports=_jsx_runtime});var P={};w(P,{default:()=\u003ej,frontmatter:()=\u003ek});var t=y(h()),k={title:\"New Integration: PostgreSQL Instrumented for Node.js\",author:\"Stefan Verkerk\",intro:\"A new integration for AppSignal on Node.js: PostgreSQL: knex, bookshelfjs, typeORM and all other consumers of the pg library.\",facebook:\"/images/blog/2020-05/appsignal-postgres-node-facebook.jpg\",twitter:\"/images/blog/2020-05/appsignal-postgres-node-twitter.jpg\",image:\"/images/blog/2020-05/appsignal-postgres-node.jpg\",opacity:7,headerType:\"legacy\",tags:\"product, javascript, appsignal\",category:\"appsignal\"};function g(n){let e=Object.assign({p:\"p\",code:\"code\",h2:\"h2\",a:\"a\",img:\"img\",del:\"del\"},n.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(e.p,{children:[\"Today\\u2019s release of Node.js integration supports PostgreSQL as well as all the consumers of the \",(0,t.jsx)(e.code,{children:\"pg\"}),\" library.\"]}),`\n`,(0,t.jsx)(e.h2,{id:\"doing-the-instrumentation-for-you\",children:\"Doing the Instrumentation FOR You\"}),`\n`,(0,t.jsx)(e.p,{children:\"AppSignal does as much work as it can for you. We aim for your whole stack to be automatically instrumented, so that you can spend your time writing and improving code. We love products that put the user\\u2019s convenience over the maker\\u2019s, so that\\u2019s what we have done with AppSignal as well. You can install AppSignal in 5 minutes and get a lot of things instrumented right away.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"In the coming weeks, we will be rolling out a whole array of integrations on Node.js one by one. This means that more and more parts will be instrumented without you doing any work. Well, except upgrading to the latest \",(0,t.jsxs)(e.a,{href:\"https://www.npmjs.com/package/@appsignal/nodejs\",children:[\"AppSignal \",(0,t.jsx)(e.code,{children:\"npm\"}),\" package\"]}),\" and installing the \",(0,t.jsx)(e.code,{children:\"pg\"}),\" plugin. \",(0,t.jsx)(e.a,{href:\"https://github.com/appsignal/appsignal-nodejs/tree/master/packages/pg#appsignalpg\",children:\"Check out our documentation to get going\"}),\".\"]}),`\n`,(0,t.jsx)(e.p,{children:\"AppSignal's combination of error tracking, performance monitoring, host metrics and custom metric dashboards helps you solve your issues seamlessly. All of these things work out of the box for Node.js.\"}),`\n`,(0,t.jsx)(e.h2,{id:\"improving-performance-with-appsignals-postgresql-integration\",children:\"Improving Performance with AppSignal's PostgreSQL Integration\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"With today\\u2019s integration update, you will see a more detailed breakdown of the events within a particular request. Today\\u2019s release enables this for \",(0,t.jsx)(e.code,{children:\"knex\"}),\", \",(0,t.jsx)(e.code,{children:\"bookshelfjs\"}),\", \",(0,t.jsx)(e.code,{children:\"typeORM\"}),\" and all other consumers of the \",(0,t.jsx)(e.code,{children:\"pg\"}),\" library. Here\\u2019s an example where you can see the duration of a PostgreSQL process within a sample:\"]}),`\n`,(0,t.jsx)(e.img,{src:\"/images/blog/2020-05/screenshot-1.png\",alt:\"IncidentPageWithPostGreSQL\",width:\"1954\",height:\"770\"}),`\n`,(0,t.jsx)(e.p,{children:\"If we zoom in further on the performance of this sample, further down the page you'll find a timeline of all events. This now has your PostgreSQL consumers detailed.\"}),`\n`,(0,t.jsx)(e.img,{src:\"/images/blog/2020-05/screenshot-2.png\",alt:\"IncidentPageTimelineWithPostGreSQL\",width:\"2944\",height:\"1504\"}),`\n`,(0,t.jsx)(e.p,{children:\"The integration shows you the tracing for database calls, so you can see what query is the root of your evil (or genius) \\u{1F609}.\"}),`\n`,(0,t.jsx)(e.img,{src:\"/images/blog/2020-05/screenshot-3.png\",alt:\"IncidentPageTracingWithPostGreSQL\",width:\"1954\",height:\"880\"}),`\n`,(0,t.jsxs)(e.p,{children:[`If the root of some evil turns out to be a repeated database query know as an N+1 query, we specifically label those so that it\\u2019s easier to find. On the\nperformance sample screen we looked at before, you can then see what role they play in the timeline for that sample. For example, it can show `,(0,t.jsx)(e.code,{children:\"N+32\"}),\" there, so you immediately get a glance on how much lazy loading led to this.\"]}),`\n`,(0,t.jsx)(e.img,{src:\"/images/blog/2020-05/screenshot-4.png\",alt:\"IncidentPageWithNPlusOnePostGreSQL\",width:\"2944\",height:\"1504\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you want to solve these N+1 issues before they lead to any issues, you can see them all flagged on the Performance issue list page.\"}),`\n`,(0,t.jsxs)(e.h2,{id:\"installing-takes-minutes-and-brings-you-stroopwafels-for-days-insights-forever\",children:[\"Installing Takes Minutes and Brings You \",(0,t.jsx)(e.del,{children:\"Stroopwafels for Days\"}),\" Insights Forever\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"If we made you curious, you can get AppSignal installed and reporting in 5 minutes. Meanwhile we\\u2019ll go back to \",(0,t.jsx)(e.a,{href:\"https://www.appsignal.com/waffles\",children:(0,t.jsx)(e.del,{children:\"munching stroopwafels\"})}),\" working on the Next (hint, hint) integration \\u{1F609}\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"PS. \",(0,t.jsx)(e.a,{href:\"mailto:support@appsignal.com?subject=NodeStroopWafelsPlease\",children:\"Drop us a note\"}),\" if you are trying AppSignal and want to have some stroopwafels and swag to go with that.\"]})]})}function S(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,Object.assign({},n,{children:(0,t.jsx)(g,n)})):g(n)}var j=S;return b(P);})();\n;return Component;"},"_id":"posts/2020-05-14-new-integration-postgresql-instrumented-for-node-js.html.mdx","_raw":{"sourceFilePath":"posts/2020-05-14-new-integration-postgresql-instrumented-for-node-js.html.mdx","sourceFileName":"2020-05-14-new-integration-postgresql-instrumented-for-node-js.html.mdx","sourceFileDir":"posts","contentType":"mdx","flattenedPath":"posts/2020-05-14-new-integration-postgresql-instrumented-for-node-js.html"},"type":"Post","year":"2020","serieSlug":null,"sitemapSlug":"2020/05/14/new-integration-postgresql-instrumented-for-node-js.html"},"posts":{"favorite":[],"related":[{"date":"2024-12-17T00:00:00+00:00","slug":"2024/12/17/appsignals-top-5-javascript-posts-in-2024","title":"AppSignal鈥檚 Top 5 JavaScript Posts in 2024"},{"date":"2024-12-11T00:00:00+00:00","slug":"2024/12/11/a-deep-dive-into-commonjs-and-es-modules-in-nodejs","title":"A Deep Dive Into CommonJS and ES Modules in Node.js"},{"date":"2024-11-27T00:00:00+00:00","slug":"2024/11/27/unit-testing-in-nodejs-with-jest","title":"Unit Testing in Node.js With Jest"},{"date":"2024-11-20T00:00:00+00:00","slug":"2024/11/20/avoiding-false-positives-in-nodejs-tests","title":"Avoiding False Positives in Node.js Tests"},{"date":"2024-11-14T00:00:00+00:00","slug":"2024/11/14/manage-your-pino-logs-with-appsignal","title":"Manage Your Pino Logs with AppSignal"},{"date":"2024-11-13T00:00:00+00:00","slug":"2024/11/13/streamlined-contract-testing-in-nodejs-a-simple-and-achievable-approach","title":"Streamlined Contract Testing in Node.js: A Simple and Achievable Approach"},{"date":"2024-10-16T00:00:00+00:00","slug":"2024/10/16/best-testing-practices-in-nodejs","title":"Best Testing Practices in Node.js"},{"date":"2024-09-18T00:00:00+00:00","slug":"2024/09/18/dynamodb-single-table-design-with-typescript","title":"DynamoDB Single-Table Design with TypeScript"},{"date":"2024-09-11T00:00:00+00:00","slug":"2024/09/11/top-5-http-request-libraries-for-nodejs","title":"Top 5 HTTP Request Libraries for Node.js"},{"date":"2024-08-28T00:00:00+00:00","slug":"2024/08/28/how-to-handle-errors-in-nextjs-for-node-with-the-app-router","title":"How to Handle Errors in Next.js for Node With the App Router"}]}},"__N_SSG":true},"page":"/[year]/[month]/[day]/[text]","query":{"year":"2020","month":"05","day":"14","text":"new-integration-postgresql-instrumented-for-node-js"},"buildId":"4VD4GTi1vs_NVN2Wl-Jyb","isFallback":false,"dynamicIds":[9142,7572,3653,4396],"gsp":true,"scriptLoader":[]}</script></body></html>