PageSourceSearch

https://www.appsignal.com/_next/static/chunks/9982-3f900efc41698e8e.js?dpl=dpl_HSdEp7KUW1dQsdjYBErNPEM4ZtAY

js appsignal.com collected 2026-10-02 04:46:46 UTC 32,051 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9982],{10117:(t,e,n)=>{n.d(e,{Ay:()=>X,KP:()=>U,Mj:()=>Y,qz:()=>V});var o=n(54462),i=n(91785),a=n(66183),s=n(98074),r=n(91635),p=n(4190),l=n(82e3),c=n(69695),m=n(64906),g=n(51380),d=n(81454),h=n(27128),w=n(92840),u=n(73821),b=n(32008),k=n(93407),y=n(90665),x=n(71679),f=n(1138),v=n(87256),j=n(16488),A=n(10221),S=n(49299),P=n(22997),q=n(31416),M=n(11540),z=n(65452),R=n(85087),T=n(99254),_=n(80807),C=n(44416),L=n(75987),N=n(4426),D=n(57362),O=n(20647),G=n(67069),Q=n(23321),H=n(29466),E=n(92063),I=n(42803),J=n(96395);let W=[o.TH,i.wG,a.Q0,s.D6,r.YX,p.zC,l.faGaugeHigh,c.gd,m.FA,g.rQ,d.Lk,h.rZ,w.R7,u.yz,b.jT,k.Qp,y.CK,x.u4,f.Bw,v.Xx,j.R1,A.KM,S.ck,P.GR,q.td,M.Re,z.LB,R.eG,T.Vp,_.qt,C.dm,L.Yj,N.$7,D.xK,O.iz,G.SY,Q.gR,H.H,E.Ou,I.ar,J.MQ],B={box:o.TH,bug:i.wG,"rabbit-fast":a.Q0,server:s.D6,"siren-on":r.YX,"traffic-light":p.zC,"gauge-high":l.faGaugeHigh,users:c.gd,"line-columns":m.FA,"check-square":g.rQ,"user-secret":d.Lk,"wand-sparkles":h.rZ,gem:w.R7,droplet:u.yz,code:b.jT,telescope:k.Qp,triangle:y.CK,briefcase:x.u4,globe:f.Bw,"file-lock":v.Xx,"shield-check":j.R1,rocket:A.KM,bars:S.ck,times:P.GR,"angle-down":q.td,"book-open":M.Re,book:z.LB,rss:R.eG,"dollar-sign":T.Vp,"circle-play":_.qt,"arrow-right":C.dm,"clock-rotate-left":L.Yj,"quote-left":N.$7},K={aws:D.xK,golang:O.iz,java:G.SY,"js-square":Q.gR,"node-js":H.H,php:E.Ou,python:I.ar,rust:J.MQ};function V(t){if(t&&"object"==typeof t&&t.iconName)return t;if(Array.isArray(t)){let[e,n]=t;return"fab"===e?K[n]||t:B[n]||t}return"string"==typeof t&&(B[t]||K[t])||t}let F=t=>({...t,icon:V(t.icon)});function Y(t){return t?t.map(t=>t.subcategories?{...t,subcategories:t.subcategories.map(t=>({...t,links:t.links?.map(F)}))}:t):t}function U(t){if(!t)return t;let e=t=>t?.links?{...t,links:t.links.map(F)}:t;return{...t,features:e(t.features),languages:e(t.languages),integrations:e(t.integrations)}}let X=W},10330:(t,e,n)=>{n.d(e,{A:()=>o});let o=[{name:"Enterprise",link:"https://www.appsignal.com/enterprise",icon:"briefcase",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Data Residency",link:"https://www.appsignal.com/us-hosting",icon:"globe",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Startups",link:"https://www.appsignal.com/startups",icon:"rocket",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Long-Term Log Storage",link:"https://www.appsignal.com/add-ons/long-term-log-storage",addon:!0,icon:"line-columns",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"HIPAA Compliance",link:"https://www.appsignal.com/add-ons/hipaa-baa",addon:!0,icon:"file-lock",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}}]},11242:(t,e,n)=>{n.d(e,{A:()=>p});var o=n(56830),i=n(56384),a=n(10330),s=n(73610);let r=i.A.filter(t=>!t.otelOnly),p={header:[{name:"Platform",subcategories:[{name:"Features",links:o.A.filter(t=>t.core)},{name:"Intelligence",links:o.A.filter(t=>!t.core)},{name:"Hosting",links:[{name:"Hatchbox",link:"https://www.appsignal.com/hatchbox",icon:"box",iconPath:"/assets/nav-icons/hatchbox-logo.svg"}]}]},{name:"Languages",subcategories:[{name:"Supported Languages",links:i.A},{name:"Integrations",links:s.A}]},{name:"Solutions",subcategories:[{name:"Growth",links:a.A.filter(t=>!t.addon)},{name:"Add-Ons",links:a.A.filter(t=>t.addon)}]},{name:"Resources",subcategories:[{name:"",links:[{name:"Blog",link:"https://blog.appsignal.com",icon:"rss",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Learning Center",link:"https://www.appsignal.com/learning-center",icon:"book-open",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Customer Stories",link:"https://www.appsignal.com/customers",icon:"quote-left",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Changelog",link:"https://www.appsignal.com/changelog",icon:"clock-rotate-left",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}},{name:"Product Demos",link:"https://www.appsignal.com/product-demos",icon:"circle-play",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"}}]}]},{name:"Docs",link:"https://docs.appsignal.com"},{name:"Pricing",link:"https://www.appsignal.com/plans"}],footer:{features:{title:"Features",links:o.A},resources:{title:"Resources",links:[{name:"Plans & pricing",link:"https://www.appsignal.com/plans"},{name:"Documentation",link:"https://docs.appsignal.com/"}
1,{name:"Blog",link:"https://blog.appsignal.com/"},{name:"Customer Stories",link:"https://www.appsignal.com/customers"},{name:"Changelog",link:"https://www.appsignal.com/changelog"},{name:"Learning Center",link:"https://www.appsignal.com/learning-center"},{name:"Why AppSignal",link:"https://www.appsignal.com/why"}]},compare:{title:"Compare",links:[{name:"vs Better Stack",link:"https://www.appsignal.com/alternative/betterstack-alternative"},{name:"vs Datadog",link:"https://www.appsignal.com/alternative/datadog-alternative"},{name:"vs Honeybadger",link:"https://www.appsignal.com/alternative/honeybadger-alternative"},{name:"vs New Relic",link:"https://www.appsignal.com/alternative/new-relic-alternative"},{name:"vs Scout APM",link:"https://www.appsignal.com/alternative/scout-apm-alternative"},{name:"vs Sentry",link:"https://www.appsignal.com/alternative/sentry-alternative"},{name:"vs SolarWinds",link:"https://www.appsignal.com/alternative/solarwinds-alternative"}]},support:{title:"Support",links:[{name:"Contact us",link:"https://www.appsignal.com/contact"},{name:"Live chat",link:"mailto:[email protected]"},{name:"Status",link:"https://status.appsignal.com/"},{name:"Security",link:"https://www.appsignal.com/security"},...a.A]},about:{title:"About us",links:[{name:"About",link:"https://www.appsignal.com/about"},{name:"Jobs",link:"https://www.appsignal.com/jobs"},{name:"Write for Our Blog",link:"https://blog.appsignal.com/write-for-us"},{name:"Diversity",link:"https://www.appsignal.com/diversity"},{name:"Open Source",link:"https://www.appsignal.com/open-source"},{name:"X",link:"https://x.com/appsignal"},{name:"Discord",link:"https://discord.gg/sBWWGwYzfC"}]},languages:{title:"Languages",links:[...r,{id:"opentelemetry",name:"OpenTelemetry",shortName:"OpenTelemetry",link:"https://www.appsignal.com/opentelemetry",icon:"telescope",frameworks:[{id:"go",name:"Go",link:"https://www.appsignal.com/opentelemetry/go-monitoring"},{id:"java",name:"Java",link:"https://www.appsignal.com/opentelemetry/java-monitoring"},{id:"laravel",name:"Laravel",link:"https://www.appsignal.com/opentelemetry/laravel-monitoring"},{id:"nextjs",name:"Next.js",link:"https://www.appsignal.com/opentelemetry/nextjs-monitoring"},{id:"nodejs-otel",name:"Node.js",link:"https://www.appsignal.com/opentelemetry/nodejs-monitoring"},{id:"php",name:"PHP",link:"https://www.appsignal.com/opentelemetry/php-monitoring"},{id:"python-otel",name:"Python",link:"https://www.appsignal.com/opentelemetry/python-monitoring"},{id:"rust",name:"Rust",link:"https://www.appsignal.com/opentelemetry/rust-monitoring"},{id:"symfony",name:"Symfony",link:"https://www.appsignal.com/opentelemetry/symfony-monitoring"},{id:"vercel",name:"Vercel",link:"https://www.appsignal.com/opentelemetry/vercel-monitoring"}]}]},integrations:{title:"Integrations",links:s.A},legal:{title:"Legal",links:[{name:"Terms & Conditions",link:"https://www.appsignal.com/terms"},{name:"Privacy Policy",link:"https://www.appsignal.com/privacy-policy"},{name:"Cookie Policy",link:"https://www.appsignal.com/cookie-policy"},{name:"GDPR compliance",link:"https://docs.appsignal.com/appsignal/gdpr.html"},{name:"Contact us / Imprint",link:"https://www.appsignal.com/contact"}]}}}},56384:(t,e,n)=>{n.d(e,{A:()=>o});let o=[{id:"ruby",name:"Ruby (on Rails) APM",shortName:"Ruby",link:"https://www.appsignal.com/ruby",icon:"gem",styles:{text:"text-red-500",box:"c_h-icon-box--red"},description:"Our monitoring gem provides Ruby on Rails error tracking, performance monitoring, server monitoring and more.",frameworks:[{id:"active-record",name:"Active Record",link:"https://www.appsignal.com/ruby/active-record-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/rails.html",description:"A powerful ORM for Ruby"},{id:"capistrano",name:"Capistrano",link:"https://www.appsignal.com/ruby/capistrano-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/capistrano.html",description:"A remote server automation and deployment tool"},{id:"delayed-job",name:"Delayed::Job",link:"https://www.appsignal.com/ruby/delayed-job-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/delayed-job.html",description:"Async execution of background tasks"},{id:"garbage-collection",name:"Garbage Collection",link:"https://www.appsignal.com/ruby/garbage-collection-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/garbage-collection.html"}
1,{id:"global-vm-lock",name:"Global VM Lock",link:"https://www.appsignal.com/ruby/global-vm-lock-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/global-vm-lock.html",description:"HTTP Toolkit for Ruby"},{id:"grape",name:"Grape",link:"https://www.appsignal.com/ruby/grape-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/grape.html",description:"A REST-like API framework for Ruby"},{id:"graphql",name:"GraphQL",link:"https://www.appsignal.com/ruby/graphql-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/graphql.html",description:"A REST-like API framework for Ruby"},{id:"hanami",name:"Hanami",link:"https://www.appsignal.com/ruby/hanami-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/hanami.html"},{id:"mongo-db",name:"MongoDB",link:"https://www.appsignal.com/ruby/mongodb-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/mongodb.html",description:"A document-oriented NoSQL database"},{id:"padrino",name:"Padrino",link:"https://www.appsignal.com/ruby/padrino-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/padrino.html",description:"Web framework built on Sinatra"},{id:"puma",name:"Puma",link:"https://www.appsignal.com/ruby/puma-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/puma.html"},{id:"que",name:"Que",link:"https://www.appsignal.com/ruby/que-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/que.html"},{id:"ruby-on-rails",name:"Ruby on Rails",link:"https://www.appsignal.com/ruby/rails-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/rails.html",description:"The most popular Ruby framework"},{id:"rake",name:"Rake",link:"https://www.appsignal.com/ruby/rake-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/rake.html",description:"A Make-like program implemented in Ruby"},{id:"resque",name:"Resque",link:"https://www.appsignal.com/ruby/resque-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/resque.html",description:"Redis-backed library for creating background jobs"},{id:"shoryuken",name:"Shoryuken",link:"https://www.appsignal.com/ruby/shoryuken-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/shoryuken.html",description:"Efficient Amazon SQS thread-based message processor"},{id:"sidekiq",name:"Sidekiq",link:"https://www.appsignal.com/ruby/sidekiq-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/sidekiq.html",description:"Simple, efficient background processing"},{id:"sinatra",name:"Sinatra",link:"https://www.appsignal.com/ruby/sinatra-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/sinatra.html",description:"DSL for quickly creating web applications"},{id:"solid-queue",name:"Solid Queue",link:"https://www.appsignal.com/ruby/solid-queue-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/solidqueue.html",description:"SolidQueue manages tasks in the background for efficient processing across multiple workers."},{id:"view-component",name:"ViewComponent",link:"https://www.appsignal.com/ruby/view-component-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/view-component.html",description:"A framework for building reusable, testable, view components."},{id:"webmachine",name:"Webmachine",link:"https://www.appsignal.com/ruby/webmachine-monitoring",docs:"https://docs.appsignal.com/ruby/integrations/webmachine.html",description:"HTTP Toolkit for Ruby"}]},{id:"elixir",name:"Elixir APM",shortName:"Elixir",link:"https://www.appsignal.com/elixir",icon:"droplet",styles:{text:"text-purple-500",box:"c_h-icon-box--purple"},description:"Our monitoring package provides Elixir error tracking, performance monitoring, server monitoring and more.",frameworks:[{id:"absinthe",name:"Absinthe",link:"https://www.appsignal.com/elixir/absinthe-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/absinthe.html",description:"Toolkit for building a GraphQL API with Elixir."},{id:"ecto",name:"Ecto",link:"https://www.appsignal.com/elixir/ecto-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/ecto.html",description:"Toolkit for data mapping and language integrated queries"},{id:"erlang",name:"Erlang",link:"https://www.appsignal.com/elixir/erlang-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/erlang.html",description:"Virtual machine"},{id:"finch",name:"Finch",link:"https://www.appsignal.com/elixir/finch-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/finch.html"},{id:"oban",name:"Oban",link:"https://www.appsignal.com/elixir/oban-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/oban.html"},{id:"phoenix",name:"Phoenix",link:"https://www.appsignal.com/elixir/phoenix-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/phoenix.html",description:"MVC Web development framework"},{id:"plug",name:"Plug",link:"https://www.appsignal.com/elixir/plug-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/plug.html",description:"Specification for composable modules in between web applications"},{id:"tesla",name:"Tesla",link:"https://www.appsignal.com/elixir/tesla-monitoring",docs:"https://docs.appsignal.com/elixir/integrations/tesla.html"}]},{id:"nodejs",name:"Node.js APM",shortName:"Node.js",link:"https://www.appsignal.com/nodejs",otel:"https://www.appsignal.com/opentelemetry/nodejs-monitoring",icon:["fab","node-js"],styles:{text:"text-green-500",box:"c_h-icon-box--green"},description:"Our monitoring package provides Node.js error tracking, performance monitoring, server monitoring and more.",frameworks:[{id:"amqplib",name:"AMQPlib",link:"https://www.appsignal.com/nodejs/amqplib-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/amqplib.html"},{id:"apollo-gateway",name:"Apollo Gateway",link:"https://www.appsignal.com/nodejs/apollo-gateway-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/apollo-gateway.html"},{id:"bullmq",name:"BullMQ",link:"https://www.appsignal.com/nodejs/bullmq-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/bullmq.html"},{id:"express",name:"Express",link:"https://www.appsignal.com/nodejs/express-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/express.html",description:"Automatic instrumentation and error-catching for Express"},{id:"fastify",name:"Fastify",link:"https://www.appsignal.com/nodejs/fastify-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/fastify.html"},{id:"graphql",name:"GraphQL",link:"https://www.appsignal.com/nodejs/graphql-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/graphql.html"},{id:"knexjs",name:"Knex.js",link:"https://www.appsignal.com/nodejs/knexjs-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/knexjs.html"},{id:"koa",name:"Koa",link:"https://www.appsignal.com/nodejs/koa-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/koajs.html",description:"automatically instrumenting the middlewares or routes of your Koa application"},{id:"mongodb",name:"MongoDB",link:"https://www.appsignal.com/nodejs/mongodb-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/mongo.html"},{id:"mongoose",name:"Mongoose",link:"https://www.appsignal.com/nodejs/mongoose-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/mongoose.html"},{id:"mysql",name:"MySQL",link:"https://www.appsignal.com/nodejs/mysql-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/mysql.html"},{id:"nestjs",name:"NestJS",link:"https://www.appsignal.com/nodejs/nestjs-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/nestjs.html"},{id:"nextjs",name:"Next.js",link:"https://www.appsignal.com/nodejs/nextjs-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/nextjs.html",description:"Instrument your Next.js requests and get experimental web vitals reporting."},{id:"pino",name:"Pino",link:"https://www.appsignal.com/nodejs/pino-monitoring",docs:"https://docs.appsignal.com/logging/integrations/nodejs#usage-with-pino",description:"Auto-instrument Pino logs."},{id:"postgresql",name:"PostgreSQL",link:"https://www.appsignal.com/nodejs/postgresql-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/pg.html",description:"Get insights into query duration, (sanitized) SQL queries, and errors"},{id:"prisma",name:"Prisma",link:"https://www.appsignal.com/nodejs/prisma-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/prisma.html"},{id:"redis",name:"Redis",link:"https://www.appsignal.com/nodejs/redis-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/redis.html",description:"Auto-instrument Redis"},{id:"remix",name:"Remix",link:"https://www.appsignal.com/nodejs/remix-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/remix.html",description:"Auto-instrument Remix"},{id:"restify",name:"Restify",link:"https://www.appsignal.com/nodejs/restify-monitoring",docs:"https://docs.appsignal.com/nodejs/3.x/integrations/restify.html",description:"Auto-instrument Restify"},{id:"winston",name:"Winston",link:"https://www.appsignal.com/nodejs/winston-monitoring",docs:"https://docs.appsignal.com/logging/integrations/nodejs",description:"Auto-instrument Winston logs"}]},{id:"javascript",name:"JavaScript Error Tracking",shortName:"JavaScript",link:"https://www.appsignal.com/javascript",icon:["fab","js-square"],styles:{text:"text-yellow-500",box:"c_h-icon-box--yellow"},description:"Our JS package provides easy to use use error tracking. Together with our back-end monitoring, this gives you a full overview of your application.",frameworks:[{id:"react",name:"React",link:"https://www.appsignal.com/javascript/react-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/react.html",description:"React is a declarative, efficient, and flexible JavaScript library for building user interfaces."},{id:"vue",name:"Vue",link:"https://www.appsignal.com/javascript/vue-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/vue.html",description:"Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web."},{id:"angular",name:"Angular",link:"https://www.appsignal.com/javascript/angular-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/angular.html",description:"Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages."},{id:"ember",name:"Ember",link:"https://www.appsignal.com/javascript/ember-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/ember.html",description:"Ember.js is a JavaScript framework for building modern web applications."},{id:"preact",name:"Preact",link:"https://www.appsignal.com/javascript/preact-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/preact.html",description:"Preact is a fast 3kB alternative to React with the same modern API."},{id:"stimulus",name:"Stimulus",link:"https://www.appsignal.com/javascript/stimulus-monitoring",docs:"https://docs.appsignal.com/front-end/integrations/stimulus.html",description:"Stimulus is a JavaScript framework with modest ambitions, designed to augment your HTML with 
1just enough behavior to make it shine."}]},{id:"python",name:"Python APM",shortName:"Python",link:"https://www.appsignal.com/python",otel:"https://www.appsignal.com/opentelemetry/python-monitoring",icon:["fab","python"],styles:{text:"text-blue-500",box:"c_h-icon-box--blue"},description:"Our Python monitoring package provides Python error tracking, performance monitoring, server monitoring, and more.",frameworks:[{id:"celery",name:"Celery",link:"https://www.appsignal.com/python/celery-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/celery.html"},{id:"django",name:"Django",link:"https://www.appsignal.com/python/django-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/django.html"},{id:"fastapi",name:"FastAPI",link:"https://www.appsignal.com/python/fastapi-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/fastapi.html"},{id:"flask",name:"Flask",link:"https://www.appsignal.com/python/flask-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/flask.html"},{id:"jinja2",name:"Jinja2",link:"https://www.appsignal.com/python/jinja2-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/jinja2.html"},{id:"pmysql",name:"MySQL",link:"https://www.appsignal.com/python/mysql-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/mysql.html"},{id:"pika",name:"Pika",link:"https://www.appsignal.com/python/pika-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/pika.html"},{id:"psycopg2",name:"PostgreSQL",link:"https://www.appsignal.com/python/postgresql-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/postgresql.html"},{id:"redis",name:"Redis",link:"https://www.appsignal.com/python/redis-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/redis.html"},{id:"request",name:"Request",link:"https://www.appsignal.com/python/request-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/requests.html"},{id:"sqlalchemy",name:"SQLAlchemy",link:"https://www.appsignal.com/python/sqlalchemy-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/sqlalchemy.html"},{id:"sqlite",name:"SQLite",link:"https://www.appsignal.com/python/sqlite-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/sqlite.html"},{id:"starlette",name:"Starlette",link:"https://www.appsignal.com/python/starlette-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/starlette.html"},{id:"wsgi-and-asgi",name:"WSGI and ASGI",link:"https://www.appsignal.com/python/wsgi-asgi-monitoring",docs:"https://docs.appsignal.com/python/instrumentations/wsgi.html"}]},{id:"go",name:"Go APM",shortName:"Go",link:"https://www.appsignal.com/opentelemetry/go-monitoring",otelOnly:!0,icon:["fab","golang"],styles:{text:"text-cyan-500",box:"c_h-icon-box--azure"},description:"Monitor your Go applications with AppSignal via OpenTelemetry.",docs:"https://docs.appsignal.com/go/installation.html"},{id:"java",name:"Java APM",shortName:"Java",link:"https://www.appsignal.com/opentelemetry/java-monitoring",otelOnly:!0,icon:["fab","java"],styles:{text:"text-coffee-500",box:"c_h-icon-box--azure"},description:"Monitor your Java applications with AppSignal via OpenTelemetry.",docs:"https://docs.appsignal.com/java/installation.html"},{id:"php",name:"PHP APM",shortName:"PHP",link:"https://www.appsignal.com/opentelemetry/php-monitoring",otelOnly:!0,icon:["fab","php"],styles:{text:"text-indigo-500",box:"c_h-icon-box--azure"},description:"Monitor your PHP applications with AppSignal via OpenTelemetry.",docs:"https://docs.appsignal.com/php/installation.html",frameworks:[{id:"laravel",name:"Laravel",link:"https://www.appsignal.com/opentelemetry/laravel-monitoring",docs:"https://docs.appsignal.com/php/instrumentations/laravel.html",description:"The PHP framework for web artisans"},{id:"symfony",name:"Symfony",link:"https://www.appsignal.com/opentelemetry/symfony-monitoring",docs:"https://docs.appsignal.com/php/instrumentations/symfony.html",description:"High performance PHP framework for web development"}]},{id:"rust",name:"Rust APM",shortName:"Rust",link:"https://www.appsignal.com/opentelemetry/rust-monitoring",otelOnly:!0,icon:["fab","rust"],styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},description:"Monitor your Rust applications with AppSignal via OpenTelemetry.",docs:"https://docs.appsignal.com/opentelemetry/installation.html"}]},56830:(t,e,n)=>{n.d(e,{A:()=>
1o});let o=[{id:"errors",name:"Error Tracking",core:!0,description:"Track exceptions, get error alerts, debug and fix bugs with ease.",icon:"bug",styles:{text:"text-orange-500",box:"c_h-icon-box--orange"},link:"https://www.appsignal.com/tour/errors/",featureTabs:{name:"Errors",bullets:["Detailed error reports","Real-time error alerts","Send to your issue tracker","Tag errors with custom attributes","Filter & find errors"],gradient:"bg-gradient-to-b from-orange-400 to-orange-600/25",image:{src:"/assets/pages/tour/errors/incident-detail.jpg",alt:"Error tracking screenshot of AppSignal APM with an error sample in view.",color:"orange"}}},{id:"performance",name:"Performance Monitoring",core:!0,description:"Monitor the performance of your slowest actions down to the nanosecond.",icon:"rabbit-fast",styles:{text:"text-green-500",box:"c_h-icon-box--green"},link:"https://www.appsignal.com/tour/performance",featureTabs:{name:"Performance",bullets:["Alerts for slow requests","Duration breakdown","Detailed tracing timeline","Find and fix slow queries","90th percentile breakdown"],gradient:"bg-gradient-to-b from-green-400 to-green-600/25",image:{src:"/assets/pages/tour/performance/performance-incident.jpg",alt:"Performance monitoring screenshot of AppSignal APM with a slow request in view.",color:"green"}}},{id:"hosts",name:"Host Monitoring",core:!0,description:"Monitoring for your servers: keep an eye on CPU, Disk, Network & more.",icon:"server",styles:{text:"text-teal-500",box:"c_h-icon-box--teal"},link:"https://www.appsignal.com/tour/hosts",featureTabs:{name:"Host",bullets:["CPU usage","Disk I/O and usage","Load average","Memory & Network usage","Kubernetes metrics"],gradient:"bg-gradient-to-b from-teal-400 to-teal-600/25",image:{src:"/assets/pages/tour/hosts/latest-host-metrics.jpg",alt:"Server monitoring screenshot of AppSignal APM with a list of hosts and their metrics.",color:"teal"}}},{id:"anomalies",name:"Anomaly Detection",core:!0,description:"Avoid surprises and set triggers for anomalies on any metric you'd like.",icon:"siren-on",styles:{text:"text-red-500",box:"c_h-icon-box--red"},link:"https://www.appsignal.com/tour/anomaly-detection",featureTabs:{name:"Anomalies",bullets:["Set alerts on any metric","Pre-configured for key alerts","Reduce noise with smart delays","Send via Slack, email, and more"],gradient:"bg-gradient-to-b from-red-400 to-red-600/25",image:{src:"/assets/pages/tour/anomaly-detection/alert-list.jpg",alt:"Screenshot of anomalies feature of AppSignal APM",color:"red"}}},{id:"uptime",name:"Uptime Monitoring",core:!0,description:"Get alerted in real-time when your application is down.",icon:"traffic-light",styles:{text:"text-yellow-500",box:"c_h-icon-box--yellow"},link:"https://www.appsignal.com/tour/uptime-monitoring",featureTabs:{name:"Uptime",bullets:["Monitor uptime from around the globe","Ping your site every 30 seconds","Receive downtime notifications","Free public status page"],gradient:"bg-gradient-to-b from-yellow-400 to-yellow-600/25",image:{src:"/assets/pages/tour/uptime-monitoring/uptime-monitors.jpg",alt:"Screenshot of the uptime monitoring feature of AppSignal APM",color:"yellow"}}},{id:"metric-dashboards",name:"Metric Dashboards",core:!0,description:"Collect metrics from your code and chart them on interactive dashboards.",icon:"gauge-high",styles:{text:"text-purple-500",box:"c_h-icon-box--purple"},link:"https://www.appsignal.com/tour/metrics",featureTabs:{name:"Metrics",bullets:["Dozens of auto-generated dashboards","Build custom dashboards in minutes","Export and share charts","View in fullscreen mode","Easily compare timeframes"],gradient:"bg-gradient-to-b from-purple-400 to-purple-600/25",image:{src:"/assets/pages/tour/metrics/dashboard-overview.jpg",alt:"Monitoring dashboard screenshot of AppSignal APM with a series of graphs in view.",color:"purple"}}},{id:"workflow",name:"Workflow",core:!1,description:"AppSignal keeps your team focused on writing great code.",icon:"users",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},link:"https://www.appsignal.com/intelligence/workflow"},{id:"logging",name:"Log Management",core:!0,description:"Collect and manage logs in an easy-to-use interface.",icon:"line-columns",styles:{text:"text-hot-pink-500",box:"c_h-icon-box--hot-pink"},link:"https://www.appsignal.com/tour/log-management",featureTabs:{name:"Logging",bullets:["Centralized log management","Simple search and filtering","Link to error and performance issues","Log custom attributes"],gradient:"bg-gradient-to-b from-hot-pink to-pink-300",image:{src:"/assets/pages/tour/log-management/log-management.jpg",alt:"Screenshot of the logging feature of AppSignal APM",color:"pink"}}},{id:"automated-dashboards",name:"Dashboards",core:!1,description:"Visualize your application performance metrics.",icon:"gauge-high",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},link:"https://www.appsignal.com/intelligence/dashboards"},{id:"check-ins",name:"Process Monitoring",core:!0,description:"Monitor your application's background jobs and processes.",icon:"check-square",styles:{text:"text-blue-500",box:"c_h-icon-box--blue"},link:"https://www.appsignal.com/tour/process-monitoring",featureTabs:{name:"Process Monitoring",bullets:["Monitor scheduled jobs","Track continuous processes","Alerts for missed check-ins","Detailed job performance insights"],gradient:"bg-gradient-to-b from-blue-400 to-blue-600/25",image:{src:"/assets/pages/tour/check-in/daily-check.jpg",alt:"Screenshot of the check-ins feature of AppSignal APM",color:"blue"}}},{id:"time-detective",name:"Time Detective",core:!1,description:"Monitor your application's background jobs and processes.",icon:"user-secret",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},link:"https://www.appsignal.com/intelligence/time-detective"}
1,{id:"mcp-server",name:"MCP Server",core:!1,description:"Debug faster from your AI editor with direct access to AppSignal insights.",icon:"wand-sparkles",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},link:"https://www.appsignal.com/intelligence/mcp-server"}]},73610:(t,e,n)=>{n.d(e,{A:()=>o});let o=[{id:"opentelemetry",name:"OpenTelemetry",shortName:"OpenTelemetry",link:"https://www.appsignal.com/opentelemetry",icon:"telescope",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},description:"Connect any OpenTelemetry-compatible application to AppSignal for error tracking, performance monitoring, and more.",docs:"https://docs.appsignal.com/opentelemetry/"},{id:"vercel",name:"Vercel",shortName:"Vercel",link:"https://www.appsignal.com/opentelemetry/vercel-monitoring",icon:"triangle",styles:{text:"text-azure-500",box:"c_h-icon-box--azure"},description:"Monitor your Vercel deployments and serverless functions with AppSignal.",docs:"https://docs.appsignal.com/vercel/traces.html"},{id:"kubernetes",name:"Kubernetes",shortName:"Kubernetes",link:"https://www.appsignal.com/integrations/kubernetes",icon:"code",styles:{text:"text-azure-500",box:"c_h-icon-box--azure-light"},description:"Track Kubernetes deployments and gain instant insights into cluster health, pod performance, and node metrics.",docs:"https://docs.appsignal.com/kubernetes/metrics.html"},{id:"cloudwatch",name:"AWS CloudWatch",shortName:"CloudWatch",link:"https://www.appsignal.com/integrations/cloudwatch",icon:"aws",styles:{text:"text-azure-500",box:"c_h-icon-box--azure-light"},description:"Stream CloudWatch logs and metrics to AppSignal via Amazon Data Firehose.",docs:"https://docs.appsignal.com/logging/platforms/cloudwatch.html"}]}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.