CINXE.COM
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><script src="https://cmp.osano.com/AzZVWOTJtg1WY32RK/cd381ba3-ebca-488c-a528-376a86764609/osano.js?language=en"></script><meta name="generator" content="Gatsby 4.25.2"/><meta data-react-helmet="true" name="theme-color" content="#293338"/><meta data-react-helmet="true" class="swiftype" name="type" data-type="enum" content="docs"/><meta data-react-helmet="true" name="google-site-verification" content="He_vizRXYX_mUhwBe3BmyaMxNnVRAZbq_Jtm2A0e4WY"/><meta data-react-helmet="true" name="tags" class="swiftype" data-type="string" content="Agents"/><meta data-react-helmet="true" name="tags" class="swiftype" data-type="string" content="PHP agent"/><meta data-react-helmet="true" name="tags" class="swiftype" data-type="string" content="Frameworks and libraries"/><meta data-react-helmet="true" class="swiftype" name="document_type" data-type="enum" content="page"/><meta data-react-helmet="true" class="swiftype" name="title" data-type="string" content="PHP frameworks: Integrate support for New Relic"/><meta data-react-helmet="true" name="description" content="An overview of what New Relic is and what developers or maintainers of PHP frameworks need to do in order to integrate support for New Relic."/><meta name="theme-color" content="#663399"/><title data-react-helmet="true">PHP frameworks: Integrate support for New Relic | New Relic Documentation</title><link data-react-helmet="true" rel="canonical" href="https://docs.newrelic.com/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/"/><link data-react-helmet="true" rel="alternate" href="https://docs.newrelic.com/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" hrefLang="x-default"/><link data-react-helmet="true" rel="alternate" href="https://docs.newrelic.com/jp/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" hrefLang="ja"/><link data-react-helmet="true" rel="alternate" href="https://docs.newrelic.com/kr/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" hrefLang="ko"/><link data-react-helmet="true" rel="alternate" href="https://docs.newrelic.com/es/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" hrefLang="es"/><link data-react-helmet="true" rel="alternate" href="https://docs.newrelic.com/pt/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" hrefLang="pt"/><script data-react-helmet="true" async="" defer="" src="https://www.google.com/recaptcha/api.js?render=6LeGFt8UAAAAANfnpE8si2Z6NnAqYKnPAYgMpStu"></script><script data-react-helmet="true" async="" defer="" src="https://www.google.com/recaptcha/api.js?render=6Lfn8wUiAAAAANBY-ZtKg4V9b4rdGZtJuAng62jo"></script><script data-react-helmet="true" async="" defer="" src="https://www.google.com/recaptcha/api.js?render=6Lehf-4oAAAAAK-sCeVSRUrRQfImJdwgc2pPkOwZ"></script><link rel="icon" href="/favicon-32x32.png?v=c6adf0dad65cc1d73c93c5e0b1680678" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=c6adf0dad65cc1d73c93c5e0b1680678"/><style type="text/css"> .anchor.before { position: absolute; top: 0; left: 0; transform: translateX(-100%); padding-right: 4px; } .anchor.after { display: inline-block; padding-left: 4px; } h1 .anchor svg, h2 .anchor svg, h3 .anchor svg, h4 .anchor svg, h5 .anchor svg, h6 .anchor svg { visibility: hidden; } h1:hover .anchor svg, h2:hover .anchor svg, h3:hover .anchor svg, h4:hover .anchor svg, h5:hover .anchor svg, h6:hover .anchor svg, h1 .anchor:focus svg, h2 .anchor:focus svg, h3 .anchor:focus svg, h4 .anchor:focus svg, h5 .anchor:focus svg, h6 .anchor:focus svg { visibility: visible; } </style><script> document.addEventListener("DOMContentLoaded", function(event) { var hash = window.decodeURI(location.hash.replace('#', '')) if (hash !== '') { var element = document.getElementById(hash) if (element) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop var clientTop = document.documentElement.clientTop || document.body.clientTop || 0 var offset = element.getBoundingClientRect().top + scrollTop - clientTop // Wait for the browser to finish rendering before scrolling. setTimeout((function() { window.scrollTo(0, offset - 0) }), 0) } } }) </script><link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><script>;window.NREUM||(NREUM={});NREUM.init={session_replay:{enabled:true,mask_text_selector:'*',sampling_rate:5,error_sampling_rate:100,mask_all_inputs:true,collect_fonts:true,inline_stylesheet:true},distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["staging-bam-cell.nr-data.net","docs.newrelic.com"]},}; ;/*! For license information please see nr-loader-spa-1.256.0.min.js.LICENSE.txt */ (()=>{var e,t,r={234:(e,t,r)=>{"use strict";r.d(t,{P_:()=>m,Mt:()=>b,C5:()=>s,DL:()=>E,OP:()=>N,lF:()=>D,Yu:()=>x,Dg:()=>v,CX:()=>c,GE:()=>w,sU:()=>O});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o);const r=(0,n.ek)(e);r&&(r.info=a[e])}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f="[data-nr-mask]",h=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector="".concat(t,",").concat(f):""===t||null===t?e.mask_selector=f:(0,l.Z)("An invalid session_replay.mask_selector was provided. '*' will be used.",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},p={},g="All configuration objects require an agent identifier!";function m(e){if(!e)throw new Error(g);if(!p[e])throw new Error("Configuration for ".concat(e," was never set"));return p[e]}function v(e,t){if(!e)throw new Error(g);p[e]=(0,i.D)(t,h());const r=(0,n.ek)(e);r&&(r.init=p[e])}function b(e,t){if(!e)throw new Error(g);var r=m(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const y={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A={};function E(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!A[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return A[e]}function w(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");A[e]=(0,i.D)(t,y);const r=(0,n.ek)(e);r&&(r.loader_config=A[e])}const x=(0,n.mF)().o;var _=r(385),T=r(6818);const S={buildEnv:T.Re,customTransaction:void 0,disabled:!1,distMethod:T.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(_._A?.performance?.timeOrigin||_._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+_._A.location,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,xhrWrappable:"function"==typeof _._A.XMLHttpRequest?.prototype?.addEventListener,version:T.q4,denyList:void 0,harvestCount:0,timeKeeper:void 0},R={};function N(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!R[e])throw new Error("Runtime for ".concat(e," was never set"));return R[e]}function O(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");R[e]=(0,i.D)(t,S);const r=(0,n.ek)(e);r&&(r.runtime=R[e])}function D(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{"use strict";r.d(t,{Re:()=>i,gF:()=>o,lF:()=>a,q4:()=>n});const n="1.256.0",i="PROD",o="CDN",a="2.0.0-alpha.12"},385:(e,t,r)=>{"use strict";r.d(t,{FN:()=>c,IF:()=>l,LW:()=>a,Nk:()=>h,Tt:()=>u,_A:()=>o,cv:()=>p,iS:()=>s,il:()=>n,ux:()=>d,v6:()=>i,w1:()=>f});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a="complete"===o?.document?.readyState,s=Boolean("hidden"===o?.document?.visibilityState),c=""+o?.location,u=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Boolean(n&&window.document.documentMode),h=!!o.navigator?.sendBeacon,p=Math.floor(Date.now()-performance.now())},1117:(e,t,r)=>{"use strict";r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occurred while setting SharedContext",e)}}}},8e3:(e,t,r)=>{"use strict";r.d(t,{LP:()=>l,RP:()=>c,o5:()=>u});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){d(e),s[e].get(t)&&s[e].delete(t),s[e].size&&f(e)}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature",r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=[...s[e]];t.every((e=>{let[t,r]=e;return r.staged}))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((t=>{let[r]=t;s[e].delete(r),h(e,r)})))}function h(e,t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)p(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}r.isolatedBacklog||delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}function p(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{"use strict";r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.fP)();d.ee||(d.ee=u)},5546:(e,t,r)=>{"use strict";r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{"use strict";r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{"use strict";r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{"use strict";r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=>{"use strict";r.d(t,{Bq:()=>n,Hb:()=>a,IK:()=>u,K4:()=>i,oD:()=>o,uT:()=>c,wO:()=>s});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},7894:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{"use strict";r.d(t,{e:()=>i});var n=r(385);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n._A?.location?.protocol&&t.host===n._A?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},50:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2825:(e,t,r)=>{"use strict";r.d(t,{N:()=>c,T:()=>s});var n=r(8325),i=r(385);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{i._A.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},2210:(e,t,r)=>{"use strict";r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},7872:(e,t,r)=>{"use strict";function n(e){var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n?.leading||!1;let o;return function(){for(var n=arguments.length,a=new Array(n),s=0;s<n;s++)a[s]=arguments[s];i&&void 0===o&&(e.apply(t,a),o=setTimeout((()=>{o=clearTimeout(o)}),r)),i||(clearTimeout(o),o=setTimeout((()=>{e.apply(t,a)}),r))}}function i(e){var t=this;let r=!1;return function(){if(!r){r=!0;for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];e.apply(t,i)}}}r.d(t,{D:()=>n,Z:()=>i})},1284:(e,t,r)=>{"use strict";r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{"use strict";r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{"use strict";r.d(t,{KB:()=>a,b2:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{"use strict";r.d(t,{EZ:()=>d,ce:()=>o,ek:()=>u,fP:()=>a,gG:()=>l,h5:()=>c,mF:()=>s});var n=r(385),i=r(7894);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n._A.NREUM||(n._A.NREUM={}),void 0===n._A.newrelic&&(n._A.newrelic=n._A.NREUM),n._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:n._A.setTimeout,SI:n._A.setImmediate,CT:n._A.clearTimeout,XHR:n._A.XMLHttpRequest,REQ:n._A.Request,EV:n._A.Event,PR:n._A.Promise,MO:n._A.MutationObserver,FETCH:n._A.fetch}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.z)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{"use strict";r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},7806:(e,t,r)=>{"use strict";r.d(t,{em:()=>b,u5:()=>R,QU:()=>D,_L:()=>j,Gm:()=>M,Lg:()=>L,BV:()=>Z,Kf:()=>Y});var n=r(8325),i=r(3117);const o="nr@original:".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g="addEventListener",m="removeEventListener",v="nr@wrapped:".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get("events")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],"-",o)}function o(e,t){return e[1]}return"getPrototypeOf"in Object&&(f.il&&y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(m+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;"object"==typeof r&&!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];r&&t(r,...i)}var A="fetch-",E=A+"body-",w=["arrayBuffer","blob","json","text","formData"],x=f._A.Request,_=f._A.Response,T="prototype";const S={};function R(e){const t=function(e){return(e||n.ee).get("fetch")}(e);if(!(x&&_&&f._A.fetch))return t;if(S[t.debugId]++)return t;function r(e,r,i){var o=e[r];"function"==typeof o&&(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+"before-start",[r],a),a[n.A]&&a[n.A].dt&&(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+"start",[r,e],s),s.then((function(e){return t.emit(i+"end",[null,e],s),e}),(function(e){throw t.emit(i+"end",[e],s),e}))})}return S[t.debugId]=1,w.forEach((e=>{r(x[T],e,E),r(_[T],e,E)})),r(f._A,"fetch",A),t.on(A+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(A+"done",[null,r],n)}else t.emit(A+"done",[e],n)})),t}const N={},O=["pushState","replaceState"];function D(e){const t=function(e){return(e||n.ee).get("history")}(e);return!f.il||N[t.debugId]++||(N[t.debugId]=1,c(t).inPlace(window.history,O,"-")),t}var I=r(3239);const P={},C=["appendChild","insertBefore","replaceChild"];function j(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||P[t.debugId])return t;P[t.debugId]=!0;var r=c(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,C,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,I.m$)(!1)),e.removeEventListener("error",f,(0,I.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,I.m$)(!1)),e.removeEventListener("error",f,(0,I.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,I.m$)(!1)),e.addEventListener("error",f,(0,I.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const k={};function M(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const H={};function L(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(H[t.debugId])return t;H[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a&&function(){function e(r){var n=t.context(),o=i(r,"executor-",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];s[0]=i(s[0],"cb-",o,null,!1),s[1]=i(s[1],"cb-",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit("propagate",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on("executor-start",(function(e){e[0]=i(e[0],"resolve-",this,null,!1),e[1]=i(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const U={},z="setTimeout",F="setInterval",B="clearTimeout",q="-start",G="-",V=[z,"setImmediate",F,B,"clearImmediate"];function Z(e){const t=function(e){return(e||n.ee).get("timer")}(e);if(U[t.debugId]++)return t;U[t.debugId]=1;var r=c(t);return r.inPlace(f._A,V.slice(0,2),z+G),r.inPlace(f._A,V.slice(2,3),F+G),r.inPlace(f._A,V.slice(3),B+G),t.on(F+q,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(z+q,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}var K=r(50);const W={},X=["open","send"];function Y(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get("xhr")}(t);if(W[r.debugId]++)return r;W[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d="readystatechange",l=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit("new-xhr",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,l,"fn-",E)}),(0,I.m$)(!1))}catch(e){(0,K.Z)("An error occurred while intercepting XHR",e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,X,"-xhr-",E),r.on("send-xhr-start",(function(e,t){g(e,t),function(e){h.push(e),a&&(m?m.then(A):u?u(A):(v=-v,y.data=v))}(t)})),r.on("open-xhr-start",g),a){var m=s&&s.resolve();if(!u&&!s){var v=1,y=document.createTextNode(v);new a(A).observe(y,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e<h.length;e++)g(0,h[e]);h.length&&(h=[])}function E(e,t){return t}return r}},7825:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{"use strict";r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{"use strict";r.d(t,{Ef:()=>o,J0:()=>f,Mi:()=>l,Vb:()=>a,Ye:()=>c,fm:()=>u,i9:()=>s,t9:()=>i,u0:()=>d});var n=r(7056);const i=r(3325).D.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c=1e6,u=64e3,d={[n.IK.ERROR]:15e3,[n.IK.FULL]:3e5,[n.IK.OFF]:0},l={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},f=5e3},3112:(e,t,r)=>{"use strict";r.d(t,{HM:()=>c,ev:()=>o,rU:()=>s,wi:()=>u});var n=r(234),i=r(385);const o=e=>i.il&&!0===(0,n.Mt)(e,"privacy.cookies_enabled");function a(e){return n.Yu.MO&&o&&!0===(0,n.Mt)(e,"session_trace.enabled")}function s(e){return!0===(0,n.Mt)(e,"session_replay.preload")&&a(e)}function c(e,t){return!!a(e)&&(!!t?.isNew||!!t?.state.sessionReplayMode)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,timeKeeperOriginTime:t.originTime,timeKeeperCorrectedOriginTime:t.correctedOriginTime,timeKeeperDiff:Math.floor(t.originTime-t.correctedOriginTime)}}},3614:(e,t,r)=>{"use strict";r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},6216:(e,t,r)=>{"use strict";r.d(t,{K8:()=>s,QZ:()=>c,cS:()=>o,sE:()=>i,t9:()=>a,vh:()=>u});var n=r(3325);const i=["click","keydown","submit"],o="api",a=n.D.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7836:(e,t,r)=>{"use strict";r.d(t,{BODY:()=>w,CB_END:()=>x,CB_START:()=>u,END:()=>E,FEATURE_NAME:()=>i,FETCH:()=>T,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>g,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>f,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>p,JS_TIME:()=>_,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>l,SPA_NODE:()=>h,START:()=>A,originalSetTimeout:()=>y});var n=r(234);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,A="-start",E="-end",w="-body",x="cb"+E,_="jsTime",T="fetch"},5938:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},2758:(e,t,r)=>{"use strict";r.d(t,{j:()=>x});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(8e3),c=r(3960),u=r(385),d=r(50),l=r(3081),f=r(8632),h=r(7144);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start","recordReplay","pauseReplay",h.Ef.RECORD,h.Ef.PAUSE],g=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(7894),v=r(7056);function b(){const e=(0,f.gG)();p.forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}const y={};var A=r(2825);const E=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let w=!1;function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=arguments.length>2?arguments[2]:void 0,x=arguments.length>3?arguments[3]:void 0,{init:_,info:T,loader_config:S,runtime:R={loaderType:p},exposed:N=!0}=t;const O=(0,f.gG)();T||(_=O.init,T=O.info,S=O.loader_config),(0,i.Dg)(e.agentIdentifier,_||{}),(0,i.GE)(e.agentIdentifier,S||{}),T.jsAttributes??={},u.v6&&(T.jsAttributes.isWorker=!0),(0,i.CX)(e.agentIdentifier,T);const D=(0,i.P_)(e.agentIdentifier),I=[T.beacon,T.errorBeacon];w||(D.proxy.assets&&(E(D.proxy.assets),I.push(D.proxy.assets)),D.proxy.beacon&&I.push(D.proxy.beacon),b(),(0,f.EZ)("activatedFeatures",A.T),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),R.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?I:[]],R.ptid=e.agentIdentifier,(0,i.sU)(e.agentIdentifier,R),void 0===e.api&&(e.api=function(e,t){let f=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t||(0,s.RP)(e,"api");const p={};var b=a.ee.get(e),A=b.get("tracer");y[e]=v.IK.OFF,b.on(h.Ef.REPLAY_RUNNING,(t=>{y[e]=t}));var E="api-",w=E+"ixn-";function x(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),S(E,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}g.forEach((e=>{p[e]=S(E,e,!0,"api")})),p.addPageAction=S(E,"addPageAction",!0,n.D.pageAction),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,S(E,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return x(e,t,"setCustomAttribute",r);(0,d.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,d.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},p.setUserId=function(e){if("string"==typeof e||null===e)return x("enduser.id",e,"setUserId",!0);(0,d.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return x("application.version",e,"setApplicationVersion",!1);(0,d.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},p.start=e=>{try{const t=e?"defined":"undefined";(0,o.p)(l.xS,["API/start/".concat(t,"/called")],void 0,n.D.metrics,b);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!r.includes(e))))return(0,d.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=>{b.emit("".concat(e,"-opt-in"))}))}catch(e){(0,d.Z)("An unexpected issue occurred",e)}},p[h.Ef.RECORD]=function(){(0,o.p)(l.xS,["API/recordReplay/called"],void 0,n.D.metrics,b),(0,o.p)(h.Ef.RECORD,[],void 0,n.D.sessionReplay,b)},p[h.Ef.PAUSE]=function(){(0,o.p)(l.xS,["API/pauseReplay/called"],void 0,n.D.metrics,b),(0,o.p)(h.Ef.PAUSE,[],void 0,n.D.sessionReplay,b)},p.interaction=function(e){return(new _).get("object"==typeof e?e:{})};const T=_.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(l.xS,["API/createTracer/called"],void 0,n.D.metrics,b),f||(0,o.p)(w+"tracer",[(0,m.z)(),e,r],i,n.D.spa,b),function(){if(A.emit((a?"":"no-")+"fn-start",[(0,m.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw A.emit("fn-err",[arguments,this,e],r),e}finally{A.emit("fn-end",[(0,m.z)()],r)}}}};function S(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,b),i&&(0,o.p)(e+t,[(0,m.z)(),...arguments],r?null:this,i,b),r?void 0:this}}function R(){r.e(111).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,s.LP)(e,"api")})).catch((()=>{(0,d.Z)("Downloading runtime APIs failed..."),b.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=S(w,e,void 0,f?n.D.softNav:n.D.spa)})),p.setCurrentRouteName=f?S(w,"routeName",void 0,n.D.softNav):S(E,"routeName",!0,n.D.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,b),(0,o.p)("err",[t,(0,m.z)(),!1,r,!!y[e]],void 0,n.D.jserrors,b)},u.il?(0,c.b2)((()=>R()),!0):R(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=N),w=!0}},8993:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},3325:(e,t,r)=>{"use strict";r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.softNav]:9,[n.sessionReplay]:10}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({111:"nr-spa",164:"nr-spa-compressor",433:"nr-spa-recorder"}[e]+"-1.256.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.256.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={111:"sha512-t6PKBdfIC5mf5+k47/tJ6Z+ZCX0f+bcmFiUMbS8PuZwzhJQDtoaKjZfwcO40e9S4KnqKtE41XnM1cgooyLYW8g==",433:"sha512-tN/NK+oQR/fvjq1RnhqCPK/gadUQsIByqale3V5iG/eV4ZxwmFfy+GS+wbRDXJQq1T9uj1R7S/RuItN7XLRhdQ==",164:"sha512-sZxBhk0WuEPzK/B3KAxKrKTglpzCSXuhN1P+zDOe5feDUGbSz8A1bnQORRpAZ08KoPlbkJ4RV6+fbtxUPlmBYQ=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={801:0,92:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.256.0.PROD"]=self["webpackChunk:NRBA-1.256.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8993);var e=i(50),t=i(7144),r=i(4402);class n{agentIdentifier;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,r.ky)(16);this.agentIdentifier=e}#e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];if("function"==typeof this.api?.[t])return this.api[t](...n);(0,e.Z)("Call to agent api ".concat(t," failed. The API is not currently initialized."))}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}finished(e){return this.#e("finished",e)}addRelease(e,t){return this.#e("addRelease",e,t)}start(e){return this.#e("start",e)}recordReplay(){return this.#e(t.Ef.RECORD)}pauseReplay(){return this.#e(t.Ef.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}}var o=i(3325),a=i(234);const s=Object.values(o.D);function c(e){const t={};return s.forEach((r=>{t[r]=function(e,t){return!0===(0,a.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(2758);var d=i(8e3),l=i(5938),f=i(3960),h=i(385),p=i(3112);class g extends l.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,a.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,d.RP)(e,r)}importAggregator(){let t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,d.RP)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));this.onAggregateImported=new Promise((e=>{t=e}));const n=async()=>{let n;try{if((0,p.ev)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,1656));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t),this.featureName===o.D.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,n))return(0,d.LP)(this.agentIdentifier,this.featureName),void t(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:o}=await e(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,r),t(!0)}catch(r){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),r),this.abortHandler?.(),(0,d.LP)(this.agentIdentifier,this.featureName,!0),t(!1),this.ee&&this.ee.abort()}};h.il?(0,f.b2)((()=>n()),!0):n()}#t(e,t){return e!==o.D.sessionReplay||(0,p.HM)(this.agentIdentifier,t)}}var m=i(7633);class v extends g{static featureName=m.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,m.t,r),this.importAggregator()}}var b=i(1117),y=i(1284);class A extends b.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,y.D)(e,(function(e,r){t[e]=E(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,y.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=E(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=w(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=E(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=Object.values(this.aggregatedData[r]||{}),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function E(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=w(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function w(e){return{t:e,min:e,max:e,sos:e*e,c:1}}var x=i(8632),_=i(4351);var T=i(5546),S=i(7956),R=i(3239),N=i(9251),O=i(7894);class D extends g{static featureName=N.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),h.il&&((0,S.N)((()=>(0,T.p)("docHidden",[(0,O.z)()],void 0,N.t,this.ee)),!0),(0,R.bP)("pagehide",(()=>(0,T.p)("winPagehide",[(0,O.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var I=i(3081);class P extends g{static featureName=I.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,I.t9,r),this.importAggregator()}}var C=i(6660);class j{constructor(e,t,r,n){this.name="UncaughtError",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends g{static featureName=C.t;#r=new Set;#n=!1;constructor(e,r){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,r,C.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("fn-err",((e,t,r)=>{this.abortHandler&&!this.#r.has(r)&&(this.#r.add(r),(0,T.p)("err",[this.#i(r),(0,O.z)()],void 0,o.D.jserrors,this.ee))})),this.ee.on("internal-error",(e=>{this.abortHandler&&(0,T.p)("ierr",[this.#i(e),(0,O.z)(),!0,{},this.#n],void 0,o.D.jserrors,this.ee)})),this.ee.on(t.Ef.REPLAY_RUNNING,(e=>{this.#n=e})),h._A.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,T.p)("err",[this.#o(e),(0,O.z)(),!1,{unhandledPromiseRejection:1},this.#n],void 0,o.D.jserrors,this.ee)}),(0,R.m$)(!1,this.removeOnAbort?.signal)),h._A.addEventListener("error",(e=>{this.abortHandler&&(this.#r.has(e.error)?this.#r.delete(e.error):(0,T.p)("err",[this.#a(e),(0,O.z)(),!1,{},this.#n],void 0,o.D.jserrors,this.ee))}),(0,R.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#s,this.importAggregator()}#s(){this.removeOnAbort?.abort(),this.#r.clear(),this.abortHandler=void 0}#i(e){return e instanceof Error?e:void 0!==e?.message?new j(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new j("string"==typeof e?e:(0,_.P)(e))}#o(e){let t="Unhandled Promise Rejection: ";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new j(t);const r=this.#i(e.reason);return r.message=t+r.message,r}#a(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno);return t.name=SyntaxError.name,t}return e.error instanceof Error?e.error:new j(e.message,e.filename,e.lineno,e.colno)}}var M=i(2210);let H=1;const L="nr@id";function U(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===h._A?0:(0,M.X)(e,L,(function(){return H++}))}function z(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var F=i(7806),B=i(7243);class q{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,a.DL)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var s=(0,r.M)(),c=(0,r.Ht)(),u=Date.now(),d={spanId:s,traceId:c,timestamp:u};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(s,c),d.traceContextStateHeader=this.generateTraceContextStateHeader(s,u,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(s,c,u,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof h._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,a.Mt)(this.agentIdentifier,"distributed_tracing")&&(r=(0,a.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,B.e)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,a.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,a.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,a.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,a.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var G=i(7825),V=["load","error","abort","timeout"],Z=V.length,K=a.Yu.REQ,W=a.Yu.XHR;class X extends g{static featureName=G.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,G.t,r),(0,a.OP)(e).xhrWrappable){this.dt=new q(e),this.handler=(e,t,r,n)=>(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};h._A?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};Y(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,o.D.ajax)}}))}catch(e){}(0,F.u5)(this.ee),(0,F.Kf)(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=w,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){x(t,e)}),(0,R.m$)(!1)),h.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,R.m$)(!1))}function s(e){this.params={method:e[0]},Y(this,e[1]),this.metrics={}}function c(t,r){var i=(0,a.DL)(e);i.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",i.xpid);var o=n.generateTracePayload(this.parsedOrigin);if(o){var s=!1;o.newrelicHeader&&(r.setRequestHeader("newrelic",o.newrelicHeader),s=!0),o.traceContextParentHeader&&(r.setRequestHeader("traceparent",o.traceContextParentHeader),o.traceContextStateHeader&&r.setRequestHeader("tracestate",o.traceContextStateHeader),s=!0),s&&(this.dt=o)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=z(i);a&&(n.txSize=a)}this.startTime=(0,O.z)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<Z;s++)r.addEventListener(V[s],this.listener,(0,R.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function l(e,t){var r=""+U(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function f(e,t){var r=""+U(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,O.z)()}function g(e,r){r instanceof W&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof W&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof W&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.z)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,O.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&h.il&&(t=""+h._A.location.href):e[0]&&e[0].url?t=e[0].url:h._A?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,B.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function A(e,t){this.params={},this.metrics={},this.startTime=(0,O.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof K?r=i.url:h._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),Y(this,r);var o=(""+(i&&i instanceof K&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=z(n.body)||0}function E(e,t){var n;this.endTime=(0,O.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var i={txSize:this.txSize,rxSize:n,duration:(0,O.z)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,o.D.ajax)}function w(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var i=0;i<Z;i++)e.removeEventListener(V[i],this.listener,!1);t.aborted||(n.duration=(0,O.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):x(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,o.D.ajax))}}function x(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?z(e.response):"text"===r||""===r||void 0===r?z(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,T.p)(I.mY,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,o.D.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",s),t.on("open-xhr-end",c),t.on("send-xhr-start",u),t.on("xhr-cb-time",d),t.on("xhr-load-added",l),t.on("xhr-load-removed",f),t.on("xhr-resolved",p),t.on("addEventListener-end",g),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",A),t.on("fn-start",v),t.on("fetch-done",E)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function Y(e,t){var r=(0,B.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var J=i(3614);const{BST_RESOURCE:Q,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=J;var se=i(7056);class ce extends g{static featureName=t.t9;constructor(e,r){let n,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,r,t.t9,i);try{n=JSON.parse(localStorage.getItem("".concat(se.Bq,"_").concat(se.K4)))}catch(e){}this.#c(n)?(this.ee.on("err",(e=>{this.errorNoticed=!0,this.featAggregate&&this.featAggregate.handleError()})),this.#u(n?.sessionReplayMode)):this.importAggregator()}#c(e){return e&&(e.sessionReplayMode===se.IK.FULL||e.sessionReplayMode===se.IK.ERROR)||(0,p.rU)(this.agentIdentifier)}async#u(e){const{Recorder:t}=await Promise.all([i.e(111),i.e(433)]).then(i.bind(i,4345));this.recorder=new t({mode:e,agentIdentifier:this.agentIdentifier,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording,this.importAggregator({recorder:this.recorder,errorNoticed:this.errorNoticed})}}var ue=i(7872),de=i(6216);class le extends g{static featureName=de.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,de.t9,r),!h.il||!a.Yu.MO)return;const n=(0,F.QU)(this.ee),i=(0,F.em)(this.ee),o=()=>(0,T.p)("newURL",[(0,O.z)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",o),n.on("replaceState-end",o);try{this.removeOnAbort=new AbortController}catch(e){}(0,R.bP)("popstate",(e=>(0,T.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let s=!1;const c=new a.Yu.MO(((e,t)=>{s||(s=!0,requestAnimationFrame((()=>{(0,T.p)("newDom",[(0,O.z)()],void 0,this.featureName,this.ee),s=!1})))})),u=(0,ue.D)((e=>{(0,T.p)("newUIEvent",[e],void 0,this.featureName,this.ee),c.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});i.on("fn-start",(e=>{let[t]=e;de.sE.includes(t?.type)&&u(t)}));for(let e of de.sE)document.addEventListener(e,(()=>{}));this.abortHandler=function(){this.removeOnAbort?.abort(),c.disconnect(),this.abortHandler=void 0},this.importAggregator({domObserver:c})}}var fe=i(7836);const{FEATURE_NAME:he,START:pe,END:ge,BODY:me,CB_END:ve,JS_TIME:be,FETCH:ye,FN_START:Ae,CB_START:Ee,FN_END:we}=fe;var xe=i(4649);class _e extends g{static featureName=xe.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,xe.t,r),this.importAggregator()}}new class extends n{constructor(t,r){super(r),h._A?(this.sharedAggregator=new A({agentIdentifier:this.agentIdentifier}),this.features={},(0,x.h5)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(v),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===o.D.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.Z)("Failed to initialize the agent. Could not determine the runtime environment.")}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=c(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>o.p[e.featureName]-o.p[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==o.D.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===o.D.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===o.D.softNav)return;const n=function(e){switch(e){case o.D.ajax:return[o.D.jserrors];case o.D.sessionTrace:return[o.D.ajax,o.D.pageViewEvent];case o.D.sessionReplay:return[o.D.sessionTrace];case o.D.pageViewTiming:return[o.D.pageViewEvent];default:return[]}}(r.featureName);n.every((e=>e in this.features))||(0,e.Z)("".concat(r.featureName," is enabled but one or more dependent features has not been initialized (").concat((0,_.P)(n),"). This may cause unintended consequences or missing data...")),this.features[r.featureName]=new r(this.agentIdentifier,this.sharedAggregator)}))}catch(t){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.fP)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[X,v,D,class extends g{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!h.il)return;const r=this.ee;let n;(0,F.QU)(r),this.eventsEE=(0,F.em)(r),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,O.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)("bst",[e[0],t,this.bstStart,(0,O.z)()],void 0,o.D.sessionTrace,r)})),r.on(ae+te,(function(e){this.time=(0,O.z)(),this.startPath=location.pathname+location.hash})),r.on(ae+re,(function(e){(0,T.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,o.D.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,T.p)(Q,[t],void 0,o.D.sessionTrace,r)})),n.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:n})}},ce,P,_e,k,le,class extends g{static featureName=he;constructor(e,t){if(super(e,t,he,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!h.il)return;if(!(0,a.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=(0,F._L)(this.ee),s=(0,F.Lg)(this.ee),c=(0,F.BV)(this.ee),u=(0,F.Kf)(this.ee),d=this.ee.get("events"),l=(0,F.u5)(this.ee),f=(0,F.QU)(this.ee),p=(0,F.Gm)(this.ee);function g(e,t){f.emit("newURL",[""+window.location,t])}function m(){n++,r=window.location.hash,this[Ae]=(0,O.z)()}function v(){n--,window.location.hash!==r&&g(0,!0);var e=(0,O.z)();this[be]=~~this[be]+e-this[Ae],this[we]=e}function b(e,t){e.on(t,(function(){this[t]=(0,O.z)()}))}this.ee.on(Ae,m),s.on(Ee,m),o.on(Ee,m),this.ee.on(we,v),s.on(ve,v),o.on(ve,v),this.ee.buffer([Ae,we,"xhr-resolved"],this.featureName),d.buffer([Ae],this.featureName),c.buffer(["setTimeout"+ge,"clearTimeout"+pe,Ae],this.featureName),u.buffer([Ae,"new-xhr","send-xhr"+pe],this.featureName),l.buffer([ye+pe,ye+"-done",ye+me+pe,ye+me+ge],this.featureName),f.buffer(["newURL"],this.featureName),p.buffer([Ae],this.featureName),s.buffer(["propagate",Ee,ve,"executor-err","resolve"+pe],this.featureName),i.buffer([Ae,"no-"+Ae],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(l,ye+pe),b(l,ye+"-done"),b(o,"new-jsonp"),b(o,"jsonp-end"),b(o,"cb-start"),f.on("pushState-end",g),f.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,n>1)}),(0,R.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#s,this.importAggregator()}#s(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})()})(); ;NREUM.loader_config={accountID:"10956800",trustKey:"1",agentID:"35094662",licenseKey:"NRJS-649173eb1a7b28cd6ab",applicationID:"35094662"} ;NREUM.info={beacon:"staging-bam-cell.nr-data.net",errorBeacon:"staging-bam-cell.nr-data.net",licenseKey:"NRJS-649173eb1a7b28cd6ab",applicationID:"35094662",sa:1} </script><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap"/></head><body><script>!function(e,a,o){function d(e){document.body.classList.add(e?"dark-mode":"light-mode"),document.body.classList.remove(e?"light-mode":"dark-mode")}var t=window.matchMedia("(prefers-color-scheme: dark)"),r="(prefers-color-scheme: dark)"===t.media,s=null;try{s=localStorage.getItem("darkMode")}catch(e){}var c=null!==s;if(c&&(s=JSON.parse(s)),c)d(s);else if(r)d(t.matches),localStorage.setItem("darkMode",t.matches);else{var l=document.body.classList.contains("dark-mode");localStorage.setItem("darkMode",JSON.stringify(l))}}();</script><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion="css-global 7t9v0r">html{line-height:1.15;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;}body{margin:0;}main{display:block;}h1{font-size:2em;margin:0.67em 0;}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:transparent;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;}b,strong{font-weight:bolder;}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}fieldset{padding:0.35em 0.625em 0.75em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none;}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}:root{--global-header-height:72px;--color-white:#ffffff;--color-black:#000000;--erno-black:#1d252c;--erno-yellow:#fdebb8;--product-blue:#0e74df;--product-blue-hover:#0958a9;--system-text-primary-light:#293338;--system-text-secondary-light:#535e65;--system-text-secondary-inverted-light:#cdd3d5;--system-text-muted-light:#6b757b;--system-background-app-light:#f9fafa;--system-background-surface-1-light:#ffffff;--system-background-muted-light:#dcdede;--system-border-strong-light:#cdd3d5;--system-background-selected-low-contrast-light:#e8e8e8;--system-text-primary-dark:#e9ecec;--system-text-secondary-dark:#d0d6d7;--system-text-secondary-inverted-dark:#d0d6d7;--system-text-disabled-dark:#7b838a;--system-background-app-dark:#0d1212;--system-background-surface-1-dark:#182125;--system-background-hover-dark:#2a363c;--system-border-regular-dark:#3a444b;--system-background-selected-low-contrast-dark:#404b53;--system-background-floating-dark:#3a444b;--nav-category:#1dcad3;--nav-item:#afe2e3;--nav-highlight:#0d374a;--interactive-link-light:#0c74df;--interactive-link-dark:#3d9dff;--modal-wrapper-background-light:rgba(213,215,215,0.75);--modal-wrapper-background-dark:rgba(58,68,75,0.75);--code-console-background-main:#182125;--code-console-text-highlight:#429fff;--code-console-text-primary:#ffffff;--code-console-text-error:#ff6f66;--code-console-text-success:#01cb81;--code-console-text-warning:#ffd23d;--code-query-syntax-keyword:#da66ed;--code-query-syntax-function:#52a7f7;--code-query-syntax-string:#6cb404;--code-query-syntax-regex:#8c97ff;--code-query-syntax-numeric:#e89600;--code-query-syntax-operator:#19b1bb;--brand-button-primary-accent:#1ce783;--brand-button-primary-accent-hover:#00ce7c;--attention-notification-critical:#df2d24;--attention-notification-announcement:#00ce7c;--attention-notification-warning:#ffd23d;--attention-notification-info:#0c74df;--color-text:#c5c8c6;--color-background:#212c31;--color-current-line:#282a2e;--color-selection:#373b41;--color-comment:#969896;--color-aqua:#8abeb7;--color-blue:#81a2be;--color-red:#cc6666;--color-orange:#de935f;--color-yellow:#f0c674;--color-green:#b5bd68;--color-purple:#b294bb;--search-dropdown-emphasis:#00ac69;--spooky-white:#f8f8ff;--primary-font-family:Sohne,system-ui,sans-serif;--code-font:'Menlo','Consolas',monospace;--paragraph-spacing:1.25rem;--shadow-0:rgba(0, 0, 0, 0.05) 0px 0px 0px 1px;--shadow-1:rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;--shadow-2:rgba(0, 0, 0, 0.1) 0px 1px 3px 0px,rgba(0, 0, 0, 0.06) 0px 1px 2px 0px;--shadow-3:rgba(0, 0, 0, 0.1) 0px 4px 6px -1px,rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;--shadow-4:rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,rgba(0, 0, 0, 0.05) 0px 4px 6px -2px;--shadow-5:rgba(0, 0, 0, 0.1) 0px 20px 25px -5px,rgba(0, 0, 0, 0.04) 0px 10px 10px -5px;--shadow-6:rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;--site-max-width:1600px;--site-content-padding:5rem;--sidebar-width:340px;}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-ExtraleichtKursiv.otf') format('opentype');font-weight:200;font-style:'italic';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Extraleicht.otf') format('opentype');font-weight:200;font-style:'normal';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-LeichtKursiv.otf') format('opentype');font-weight:300;font-style:'italic';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Leicht.otf') format('opentype');font-weight:300;font-style:'normal';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-BuchKursiv.otf') format('opentype');font-weight:400;font-style:'italic';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Buch.otf') format('opentype');font-weight:400;font-style:'normal';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Kraftig.otf') format('opentype');font-weight:500;font-style:'normal';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Halbfett.otf') format('opentype');font-weight:600;font-style:'normal';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-DreiviertelfettKursiv.otf') format('opentype');font-weight:700;font-style:'italic';}@font-face{font-family:'Sohne';src:url('https://sohne-font.s3.us-east-2.amazonaws.com/Sohne-Dreiviertelfett.otf') format('opentype');font-weight:700;font-style:'normal';}.light-mode{--primary-background-color:var(--system-background-app-light);--primary-contrast-color:var(--system-text-primary-dark);--primary-text-color:var(--system-text-primary-light);--primary-hover-color:var(--system-background-selected-low-contrast-light);--secondary-background-color:var(--system-background-surface-1-light);--secondary-text-color:var(--system-text-secondary-light);--secondary-text-color-inverted:var( --system-text-secondary-inverted-light );--muted-text:var(--system-text-muted-light);--modal-background-color:var(--secondary-background-color);--modal-wrapper-color:var(--modal-wrapper-background-light);--button-background-color:var(--primary-text-color);--button-outline-color:var(--color-black);--button-text-color:var(--color-white);--accent-text-color:var(--secondary-text-color);--link-color:var(--interactive-link-light);--link-hover-color:#074382;--border-color:var(--system-border-strong-light);--divider-color:var(--system-background-selected-low-contrast-light);--heading-text-color:var(--primary-text-color);--callout-caution-background-color:#fce9e935;--callout-important-background-color:#fff9cc30;--callout-tip-background-color:#d1f7d925;--callout-course-background-color:#00b3c310;--search-dropdown-background:#fff;--search-dropdown-border:#e7e9ea;--search-dropdown-hover:rgba(0, 0, 0, 0.06);--search-input-border:none;}.light-mode input::-webkit-input-placeholder{color:var(--primary-text-color);opacity:80%;}.light-mode input::-moz-placeholder{color:var(--primary-text-color);opacity:80%;}.light-mode input:-ms-input-placeholder{color:var(--primary-text-color);opacity:80%;}.light-mode input::placeholder{color:var(--primary-text-color);opacity:80%;}.light-mode *:not(pre)>code,.light-mode var{background:var(--system-background-muted-light);}.dark-mode{--primary-background-color:var(--system-background-app-dark);--primary-contrast-color:var(--system-text-primary-light);--primary-text-color:var(--system-text-primary-dark);--primary-hover-color:var(--system-background-hover-dark);--secondary-background-color:var(--system-background-surface-1-dark);--secondary-text-color:var(--system-text-secondary-dark);--secondary-text-color-inverted:var(--system-text-secondary-inverted-dark);--muted-text:var(--system-text-disabled-dark);--modal-background-color:var(--system-background-surface-1-dark);--modal-wrapper-color:var(--modal-wrapper-background-dark);--button-background-color:var(--primary-text-color);--button-text-color:var(--color-black);--button-outline-color:var(--color-white);--accent-text-color:var(--secondary-text-color);--link-color:var(--interactive-link-dark);--link-hover-color:var(--interactive-link-light);--border-color:var(--system-border-regular-dark);--divider-color:var(--primary-contrast-color);--heading-text-color:var(--primary-text-color);--callout-caution-background-color:#1b000020;--callout-important-background-color:#14110020;--callout-tip-background-color:#02120020;--search-dropdown-background:#1a2125;--search-dropdown-border:#eaecec;--search-dropdown-hover:rgba(255, 255, 255, 0.1);--search-input-border:1px solid #eaecec;}.dark-mode input::-webkit-input-placeholder{color:var(--primary-text-color);opacity:80%;}.dark-mode input::-moz-placeholder{color:var(--primary-text-color);opacity:80%;}.dark-mode input:-ms-input-placeholder{color:var(--primary-text-color);opacity:80%;}.dark-mode input::placeholder{color:var(--primary-text-color);opacity:80%;}.dark-mode *:not(pre)>code,.dark-mode var{background:var(--primary-contrast-color);}*{box-sizing:border-box;}body{font-size:16px;font-family:var(--primary-font-family);color:var(--primary-text-color);background-color:var(--primary-background-color);line-height:1.5;overflow-x:hidden;}a{cursor:pointer;color:var(--link-color);}a:hover{color:var(--link-hover-color);}p{margin-top:0;margin-bottom:var(--paragraph-spacing);line-height:1.969rem;}p:last-child{margin-bottom:0;}img{max-height:550px;max-width:100%;}img.unbound{max-height:unset;}h1,h2,h3,h4,h5,h6{margin-top:0;font-weight:600;color:var(--heading-text-color);scroll-margin-top:calc( var(--global-header-height) + var(--site-content-padding) );}h1 .anchor svg,h2 .anchor svg,h3 .anchor svg,h4 .anchor svg,h5 .anchor svg,h6 .anchor svg{opacity:0;-webkit-transition:opacity 0.2s ease-out;transition:opacity 0.2s ease-out;}h1:hover .anchor svg,h2:hover .anchor svg,h3:hover .anchor svg,h4:hover .anchor svg,h5:hover .anchor svg,h6:hover .anchor svg,h1 .anchor:focus svg,h2 .anchor:focus svg,h3 .anchor:focus svg,h4 .anchor:focus svg,h5 .anchor:focus svg,h6 .anchor:focus svg{opacity:1;}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:inherit;}h1 var,h2 var,h3 var,h4 var,h5 var,h6 var,h1 mark,h2 mark,h3 mark,h4 mark,h5 mark,h6 mark{font-size:inherit;}h1{line-height:1.15;font-weight:bold;margin-bottom:1rem;}h2{line-height:1.75rem;margin-bottom:0.75rem;font-weight:600;}h3{margin-bottom:0.75rem;font-weight:600;}h4,h5,h6{margin-bottom:0.5rem;font-weight:600;}ol,ul{margin:0;padding-left:1.75rem;}ol >li,ul >li{line-height:1.969rem;margin:0.344rem 0;}ul>li::marker{color:var(--system-text-secondary-light);}.dark-mode ul>li::marker{color:var(--system-text-secondary-dark);}ul ul li::marker{color:var(--color-black);}.dark-mode ul ul li::marker{color:var(--color-white);}code,var{font-family:var(--code-font);white-space:pre-wrap;}*:not(pre)>code,var,mark{padding:0.2em 0.4em;border-radius:3px;font-size:85%;word-break:break-word;}blockquote{border-left:0.25rem solid var(--secondary-text-color);color:var(--secondary-text-color);padding:0.25rem 1rem;margin:0;font-style:italic;}pre{margin:0;}hr{border:none;border-bottom:1px solid var(--divider-color);}var,mark{line-height:1.25;display:inline;}var{font-style:normal;}mark{background:var(--code-console-text-highlight);}figcaption{font-size:0.75rem;color:var(--accent-text-color);}.gatsby-resp-image-wrapper,.gatsby-resp-image-image,.gatsby-resp-image-background-image{border-radius:0.25rem;}.grecaptcha-badge{visibility:hidden;}.osano-cm-widget{display:none;}.screenreader-only{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;}.header-anchor{position:absolute;top:0;left:0;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);padding-right:4px;}.children-nowrap *{white-space:nowrap;}</style><style data-emotion="css 1f4za3w">.css-1f4za3w{display:grid;background-color:var(--erno-black);grid-template-columns:var(--sidebar-width) minmax(0, 1fr);grid-template-rows:1fr auto;grid-template-areas:'logo nav';box-shadow:var(--shadow-2);position:-webkit-sticky;position:sticky;top:0;z-index:80;height:var(--global-header-height);}@media screen and (max-width: 1507px){.css-1f4za3w{grid-template-columns:calc(150px + 1.5rem) minmax(0, 1fr);}}@media screen and (max-width: 760px){.css-1f4za3w{grid-template-columns:calc(150px + 1.5rem) minmax(0, 1fr);}}</style><div data-swiftype-index="false" class="css-1f4za3w"><style data-emotion="css 17e78o6">.css-17e78o6{grid-area:logo;padding:0 1.5rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;overflow:hidden;}</style><nav class="css-17e78o6"><style data-emotion="css ulm082">.css-ulm082{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (max-width: 1070px){.css-ulm082{display:none;}}</style><a class="css-ulm082" href="https://newrelic.com/" target="_blank" rel="noopener"><style data-emotion="css 1rfhi2">.css-1rfhi2 .text-color{fill:var(--color-white);}</style><style data-emotion="css vjpcgp">.css-vjpcgp{fill:none;width:150px;}.css-vjpcgp .text-color{fill:var(--color-white);}</style><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -3 171 36" class="css-vjpcgp"><style data-emotion="css qzz8ia">@media screen and (max-width: 460px){.css-qzz8ia{display:none;}}</style><g clip-path="url(#clip0_3277_23032)" class="css-qzz8ia"><style data-emotion="css tgp2q7">.css-tgp2q7{fill:var(--primary-text-color);}</style><path class="text-color css-tgp2q7 e1rtpysa0" d="M40.104 7.57598H43.7406L44.0649 9.14005H44.223C44.223 9.14005 45.642 7.25391 48.6502 7.25391C52.2868 7.25391 54.9747 9.92309 54.9747 14.0074V23.5931H51.0219V14.3335C51.0219 12.2923 49.6029 10.8792 47.5434 10.8792C45.4839 10.8792 44.0649 12.2883 44.0649 14.3335V23.5931H40.1121L40.104 7.57598Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M73.1498 18.8823C72.8336 20.1384 70.7781 23.9147 65.7185 23.9147C60.9731 23.9147 57.4946 20.4605 57.4946 15.5931C57.4946 10.7258 60.9731 7.26953 65.7185 7.26953C70.1457 7.26953 73.6241 10.7238 73.6241 15.2791C73.6302 15.8067 73.5771 16.3333 73.466 16.8492H61.4474C61.7657 19.0393 63.5049 20.6134 65.7185 20.6134C67.6159 20.6134 68.7226 19.5144 69.0389 18.8863L73.1498 18.8823ZM69.6713 14.172C69.3551 12.1308 67.9321 10.5607 65.7185 10.5607C63.3468 10.5607 61.9238 12.1308 61.4474 14.172H69.6713Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M74.4243 7.57422H78.5271L81.2231 18.0959H81.4502L84.1381 7.57422H88.1598L90.8478 18.0959H91.0748L93.7627 7.57422H97.8736L93.7627 23.5913H88.9504L86.2625 13.2286H86.0273L83.3475 23.5913H78.5271L74.4243 7.57422Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M105.776 7.57422H109.098L109.414 8.98329H109.573C109.904 8.54636 110.332 8.19169 110.825 7.94718C111.317 7.70267 111.86 7.575 112.411 7.57422H115.167V11.3525H112.735C110.677 11.3525 109.729 12.2946 109.729 14.3357V23.5954H105.776V7.57422Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M131.345 18.8823C131.029 20.1384 128.973 23.9147 123.914 23.9147C119.168 23.9147 115.69 20.4604 115.69 15.5931C115.69 10.7258 119.168 7.26953 123.914 7.26953C128.341 7.26953 131.819 10.7238 131.819 15.2791C131.825 15.8067 131.772 16.3333 131.661 16.8492H119.643C119.961 19.0474 121.7 20.6175 123.914 20.6175C125.811 20.6175 126.918 19.5184 127.234 18.8903L131.345 18.8823ZM127.867 14.172C127.55 12.1308 126.127 10.5607 123.914 10.5607C121.542 10.5607 120.119 12.1308 119.643 14.172H127.867Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M142.256 1.60938H146.209V5.09984H142.256V1.60938ZM142.256 7.57579H146.209V23.5929H142.256V7.57579Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M164.71 17.6264C164.236 20.1386 162.18 23.9069 157.121 23.9069C152.375 23.9069 148.897 20.4526 148.897 15.5853C148.897 10.718 152.375 7.26172 157.121 7.26172C162.189 7.26172 164.236 11.032 164.71 13.3871H160.757C160.441 12.4431 159.493 10.875 157.121 10.875C154.749 10.875 152.85 12.7591 152.85 15.5853C152.85 18.4115 154.747 20.2956 157.121 20.2956C159.495 20.2956 160.441 18.7255 160.757 17.6264H164.71Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M132.424 1.61133V5.09978H134.668V23.5928H138.621V1.61133H132.424Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M165.336 22.1028C165.342 21.7518 165.452 21.4104 165.653 21.1215C165.853 20.8325 166.136 20.6089 166.464 20.4787C166.792 20.3484 167.152 20.3174 167.498 20.3896C167.844 20.4617 168.161 20.6337 168.409 20.884C168.656 21.1343 168.824 21.4517 168.891 21.7964C168.958 22.1412 168.921 22.4978 168.784 22.8216C168.647 23.1453 168.417 23.4218 168.123 23.6162C167.829 23.8107 167.483 23.9145 167.13 23.9145C166.89 23.9193 166.652 23.8755 166.43 23.7858C166.208 23.6961 166.007 23.5623 165.839 23.3927C165.671 23.2231 165.54 23.0212 165.454 22.7994C165.367 22.5776 165.327 22.3406 165.336 22.1028V22.1028ZM168.644 22.1028C168.639 21.806 168.546 21.5173 168.376 21.2728C168.207 21.0283 167.968 20.8391 167.691 20.7289C167.413 20.6187 167.109 20.5924 166.816 20.6534C166.524 20.7144 166.256 20.8598 166.046 21.0715C165.837 21.2832 165.695 21.5517 165.639 21.8433C165.582 22.1348 165.614 22.4363 165.73 22.71C165.846 22.9837 166.04 23.2173 166.289 23.3815C166.538 23.5457 166.831 23.633 167.13 23.6327C167.332 23.6375 167.533 23.6011 167.721 23.5256C167.909 23.4501 168.079 23.3371 168.221 23.1937C168.363 23.0503 168.473 22.8795 168.546 22.6919C168.619 22.5042 168.652 22.3037 168.644 22.1028ZM166.414 21.1487H167.225C167.312 21.1426 167.399 21.1544 167.482 21.1831C167.564 21.2119 167.639 21.2571 167.703 21.3159C167.767 21.3748 167.819 21.446 167.854 21.5253C167.889 21.6045 167.907 21.6901 167.908 21.7767C167.908 21.9369 167.844 22.0905 167.73 22.2037C167.616 22.317 167.461 22.3806 167.3 22.3806L167.957 23.0328H167.602L166.945 22.3806H166.702V23.0308H166.424L166.414 21.1487ZM167.225 22.1028C167.503 22.1028 167.63 21.976 167.63 21.7767C167.63 21.7262 167.619 21.6764 167.597 21.6305C167.576 21.5846 167.545 21.5436 167.507 21.5104C167.469 21.4771 167.424 21.4523 167.375 21.4374C167.327 21.4226 167.275 21.4182 167.225 21.4245H166.702V22.1028H167.225Z"></path></g><path d="M23.2043 11.0778V20.9232L14.6196 25.8469V32.0005L28.5741 24.001V8L23.2043 11.0778Z" fill="#00AC69"></path><path d="M14.6209 6.15563L23.2056 11.0773L28.5754 7.9995L14.6209 0L0.666504 7.9995L6.03422 11.0773L14.6209 6.15563Z" fill="#1CE783"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M9.25323 19.0793V28.9247L14.6209 32.0005V16.0015L0.666504 8V14.1556L9.25323 19.0793Z"></path></svg></a><style data-emotion="css xsus79">.css-xsus79{display:none;}@media screen and (max-width: 1070px){.css-xsus79{display:block;}}</style><style data-emotion="css nir1x4">.css-nir1x4{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;position:relative;display:none;}@media screen and (max-width: 1070px){.css-nir1x4{display:block;}}</style><div class="css-nir1x4"><style data-emotion="css 127vvv2">.css-127vvv2{padding-left:0;padding-right:0;}</style><style data-emotion="css v723t8">.css-v723t8{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.625rem;padding:0.375rem 0.625rem;border-radius:0.125rem;padding-left:0;padding-right:0;}</style><button class="css-v723t8 e132irl20"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -3 171 36" class="css-vjpcgp"><g clip-path="url(#clip0_3277_23032)" class="css-qzz8ia"><path class="text-color css-tgp2q7 e1rtpysa0" d="M40.104 7.57598H43.7406L44.0649 9.14005H44.223C44.223 9.14005 45.642 7.25391 48.6502 7.25391C52.2868 7.25391 54.9747 9.92309 54.9747 14.0074V23.5931H51.0219V14.3335C51.0219 12.2923 49.6029 10.8792 47.5434 10.8792C45.4839 10.8792 44.0649 12.2883 44.0649 14.3335V23.5931H40.1121L40.104 7.57598Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M73.1498 18.8823C72.8336 20.1384 70.7781 23.9147 65.7185 23.9147C60.9731 23.9147 57.4946 20.4605 57.4946 15.5931C57.4946 10.7258 60.9731 7.26953 65.7185 7.26953C70.1457 7.26953 73.6241 10.7238 73.6241 15.2791C73.6302 15.8067 73.5771 16.3333 73.466 16.8492H61.4474C61.7657 19.0393 63.5049 20.6134 65.7185 20.6134C67.6159 20.6134 68.7226 19.5144 69.0389 18.8863L73.1498 18.8823ZM69.6713 14.172C69.3551 12.1308 67.9321 10.5607 65.7185 10.5607C63.3468 10.5607 61.9238 12.1308 61.4474 14.172H69.6713Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M74.4243 7.57422H78.5271L81.2231 18.0959H81.4502L84.1381 7.57422H88.1598L90.8478 18.0959H91.0748L93.7627 7.57422H97.8736L93.7627 23.5913H88.9504L86.2625 13.2286H86.0273L83.3475 23.5913H78.5271L74.4243 7.57422Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M105.776 7.57422H109.098L109.414 8.98329H109.573C109.904 8.54636 110.332 8.19169 110.825 7.94718C111.317 7.70267 111.86 7.575 112.411 7.57422H115.167V11.3525H112.735C110.677 11.3525 109.729 12.2946 109.729 14.3357V23.5954H105.776V7.57422Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M131.345 18.8823C131.029 20.1384 128.973 23.9147 123.914 23.9147C119.168 23.9147 115.69 20.4604 115.69 15.5931C115.69 10.7258 119.168 7.26953 123.914 7.26953C128.341 7.26953 131.819 10.7238 131.819 15.2791C131.825 15.8067 131.772 16.3333 131.661 16.8492H119.643C119.961 19.0474 121.7 20.6175 123.914 20.6175C125.811 20.6175 126.918 19.5184 127.234 18.8903L131.345 18.8823ZM127.867 14.172C127.55 12.1308 126.127 10.5607 123.914 10.5607C121.542 10.5607 120.119 12.1308 119.643 14.172H127.867Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M142.256 1.60938H146.209V5.09984H142.256V1.60938ZM142.256 7.57579H146.209V23.5929H142.256V7.57579Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M164.71 17.6264C164.236 20.1386 162.18 23.9069 157.121 23.9069C152.375 23.9069 148.897 20.4526 148.897 15.5853C148.897 10.718 152.375 7.26172 157.121 7.26172C162.189 7.26172 164.236 11.032 164.71 13.3871H160.757C160.441 12.4431 159.493 10.875 157.121 10.875C154.749 10.875 152.85 12.7591 152.85 15.5853C152.85 18.4115 154.747 20.2956 157.121 20.2956C159.495 20.2956 160.441 18.7255 160.757 17.6264H164.71Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M132.424 1.61133V5.09978H134.668V23.5928H138.621V1.61133H132.424Z"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M165.336 22.1028C165.342 21.7518 165.452 21.4104 165.653 21.1215C165.853 20.8325 166.136 20.6089 166.464 20.4787C166.792 20.3484 167.152 20.3174 167.498 20.3896C167.844 20.4617 168.161 20.6337 168.409 20.884C168.656 21.1343 168.824 21.4517 168.891 21.7964C168.958 22.1412 168.921 22.4978 168.784 22.8216C168.647 23.1453 168.417 23.4218 168.123 23.6162C167.829 23.8107 167.483 23.9145 167.13 23.9145C166.89 23.9193 166.652 23.8755 166.43 23.7858C166.208 23.6961 166.007 23.5623 165.839 23.3927C165.671 23.2231 165.54 23.0212 165.454 22.7994C165.367 22.5776 165.327 22.3406 165.336 22.1028V22.1028ZM168.644 22.1028C168.639 21.806 168.546 21.5173 168.376 21.2728C168.207 21.0283 167.968 20.8391 167.691 20.7289C167.413 20.6187 167.109 20.5924 166.816 20.6534C166.524 20.7144 166.256 20.8598 166.046 21.0715C165.837 21.2832 165.695 21.5517 165.639 21.8433C165.582 22.1348 165.614 22.4363 165.73 22.71C165.846 22.9837 166.04 23.2173 166.289 23.3815C166.538 23.5457 166.831 23.633 167.13 23.6327C167.332 23.6375 167.533 23.6011 167.721 23.5256C167.909 23.4501 168.079 23.3371 168.221 23.1937C168.363 23.0503 168.473 22.8795 168.546 22.6919C168.619 22.5042 168.652 22.3037 168.644 22.1028ZM166.414 21.1487H167.225C167.312 21.1426 167.399 21.1544 167.482 21.1831C167.564 21.2119 167.639 21.2571 167.703 21.3159C167.767 21.3748 167.819 21.446 167.854 21.5253C167.889 21.6045 167.907 21.6901 167.908 21.7767C167.908 21.9369 167.844 22.0905 167.73 22.2037C167.616 22.317 167.461 22.3806 167.3 22.3806L167.957 23.0328H167.602L166.945 22.3806H166.702V23.0308H166.424L166.414 21.1487ZM167.225 22.1028C167.503 22.1028 167.63 21.976 167.63 21.7767C167.63 21.7262 167.619 21.6764 167.597 21.6305C167.576 21.5846 167.545 21.5436 167.507 21.5104C167.469 21.4771 167.424 21.4523 167.375 21.4374C167.327 21.4226 167.275 21.4182 167.225 21.4245H166.702V22.1028H167.225Z"></path></g><path d="M23.2043 11.0778V20.9232L14.6196 25.8469V32.0005L28.5741 24.001V8L23.2043 11.0778Z" fill="#00AC69"></path><path d="M14.6209 6.15563L23.2056 11.0773L28.5754 7.9995L14.6209 0L0.666504 7.9995L6.03422 11.0773L14.6209 6.15563Z" fill="#1CE783"></path><path class="text-color css-tgp2q7 e1rtpysa0" d="M9.25323 19.0793V28.9247L14.6209 32.0005V16.0015L0.666504 8V14.1556L9.25323 19.0793Z"></path></svg></button><style data-emotion="css 16wlb2s">.css-16wlb2s{--arrow-size:5px;--arrow-offset:0.5rem;position:absolute;top:calc(100% + var(--arrow-size));display:none;background:var(--secondary-background-color);border-radius:0.25rem;z-index:1000;padding:0.5rem;box-shadow:0 3px 8px 0 rgba(22, 38, 59, 0.2);}.dark-mode .css-16wlb2s{background-color:var(--primary-hover-color);}.css-16wlb2s::before{content:'';position:absolute;display:block;top:calc(-1 * var(--arrow-size));border-left:var(--arrow-size) solid transparent;border-right:var(--arrow-size) solid transparent;border-bottom:var(--arrow-size) solid var(--background-color);width:0;height:0;z-index:1000;left:var(--arrow-offset);}</style><div class="css-16wlb2s"><style data-emotion="css 1ejk3sh">.css-1ejk3sh{max-height:20rem;min-width:100px;overflow-y:auto;}</style><div class="css-1ejk3sh"><style data-emotion="css 1j1f2xp">.css-1j1f2xp{display:block;padding:0.25rem 0.5rem;font-size:0.75rem;-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out;color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;}.css-1j1f2xp:hover{color:var(--text-color);cursor:pointer;background:var(--primary-hover-color);border-radius:0.25rem;}.dark-mode .css-1j1f2xp:hover{background-color:var(--system-border-regular-dark);}</style><a class="css-1j1f2xp" href="/">Docs</a><a class="css-1j1f2xp" href="https://discuss.newrelic.com/" target="_blank" rel="noopener">Community</a><a class="css-1j1f2xp" href="https://learn.newrelic.com/" target="_blank" rel="noopener">Learn</a></div></div></div></nav><style data-emotion="css 15prito">.css-15prito{grid-area:nav;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;padding:0 1.5rem;width:100%;max-width:var(--site-max-width);margin:auto;}</style><div class="css-15prito"><nav><style data-emotion="css 1xr14q6">.css-1xr14q6{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;list-style-type:none;white-space:nowrap;padding:0;}.css-1xr14q6 li >a{font-size:18px;}.css-1xr14q6 li:first-of-type >a{padding-left:0px;}@media screen and (max-width: 1070px){.css-1xr14q6{display:none;}}</style><ul class="css-1xr14q6"><li><style data-emotion="css 1vyzctq">.css-1vyzctq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;padding:0.25rem 0.5625rem;color:var(--system-text-primary-dark);font-size:0.75rem;line-height:1.125rem;font-weight:400;-webkit-transition:0.2s;transition:0.2s;-webkit-text-decoration:none;text-decoration:none;}.css-1vyzctq:hover{color:var(--system-text-secondary-dark);}</style><a class="css-1vyzctq" instrumentation="[object Object]" href="/">Docs</a></li><li><a class="css-1vyzctq" href="https://discuss.newrelic.com/" target="_blank" rel="noopener">Community</a></li><li><a class="css-1vyzctq" href="https://learn.newrelic.com/" target="_blank" rel="noopener">Learn</a></li></ul></nav><style data-emotion="css 17x1e8q">.css-17x1e8q{margin:0;margin-left:1rem;padding:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;list-style-type:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;}.css-17x1e8q >li{-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out;}.css-17x1e8q >li:not(:first-of-type) .css-17x1e8q >li:not(:last-of-type){margin-left:0.5rem;}@media screen and (max-width: 1070px){.css-17x1e8q{width:100%;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin:0;}}</style><ul class="css-17x1e8q"><style data-emotion="css 11aujae">.css-11aujae{--search-width:26.625rem;--search-dropdown-width:26.625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:end;justify-content:end;margin:0rem 0.5rem 0 1rem;position:relative;width:var(--search-width);}@media screen and (max-width: 930px){.css-11aujae{margin-right:1rem;}}@media screen and (max-width: 1070px){.css-11aujae{margin-left:0;}}@media (max-width: 1355px){.css-11aujae{--search-width:13.3125rem;}}@media (max-width: 865px){.css-11aujae{--search-width:12rem;}}@media screen and (max-width: 760px){.css-11aujae{display:none;position:static;}}</style><li class="css-11aujae"><style data-emotion="css gxwj2d">.css-gxwj2d{--icon-size:1.5rem;width:var(--search-width);}.css-gxwj2d svg{width:1rem;height:1rem;}.css-gxwj2d input{border:none;height:40px;}@media (max-width: 760px){.css-gxwj2d{border:0;border-radius:0;position:absolute;left:0;top:0;width:100vw;height:var(--global-header-height);z-index:99;}.css-gxwj2d input{border-radius:0;height:var(--global-header-height);}}</style><style data-emotion="css 6qtwj2">.css-6qtwj2{--horizontal-spacing:1rem;border:var(--search-input-border);border-radius:4px;position:relative;width:100%;--icon-size:1rem;--icon-size:1.5rem;width:var(--search-width);}.css-6qtwj2 svg{width:1rem;height:1rem;}.css-6qtwj2 input{border:none;height:40px;}@media (max-width: 760px){.css-6qtwj2{border:0;border-radius:0;position:absolute;left:0;top:0;width:100vw;height:var(--global-header-height);z-index:99;}.css-6qtwj2 input{border-radius:0;height:var(--global-header-height);}}</style><div class="css-6qtwj2"><style data-emotion="css 1ru24ph">.css-1ru24ph{position:absolute;left:var(--horizontal-spacing);top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}</style><style data-emotion="css 1kgdipl">.css-1kgdipl{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;position:absolute;left:var(--horizontal-spacing);top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}</style><style data-emotion="css 1sytjs1">.css-1sytjs1{width:0.875rem;height:0.875rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;position:absolute;left:var(--horizontal-spacing);top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}</style><svg viewBox="0 0 24 24" class="css-1sytjs1" xmlns="http://www.w3.org/2000/svg"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg><style data-emotion="css otxpqg">.css-otxpqg{width:100%;border:1px solid var(--primary-text-color);border-radius:4px;background:var(--secondary-background-color);-webkit-transition:0.15s ease-out;transition:0.15s ease-out;line-height:1;color:var(--primary-text-color);padding-left:calc( var(--horizontal-spacing) + 0.5rem + var(--icon-size) );padding-right:var(--horizontal-spacing);font-size:0.875rem;padding-top:0.5rem;padding-bottom:0.5rem;}.css-otxpqg:focus{outline:none;border:1px solid rgba(0, 126, 138, 0.6);box-shadow:0 0 0 4px rgba(0, 126, 138, 0.1);}</style><input type="text" value="" placeholder="Search docs" class="css-otxpqg"/><style data-emotion="css yyoiav">.css-yyoiav{border:1px solid currentColor;border-radius:4px;display:inline-grid;line-height:1.1;margin-right:0.25rem;padding:2px 4px;place-items:center;position:absolute;right:0.5rem;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}@media (max-width: 760px){.css-yyoiav{display:none;}}</style><kbd class="css-yyoiav">/</kbd><style data-emotion="css 16b0y2j">.css-16b0y2j{display:none;right:var(--horizontal-spacing);top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);color:var(--primary-text-color);border:none;background:transparent;position:absolute;margin:0;padding:0;outline:none;z-index:123;}.css-16b0y2j:hover{cursor:pointer;}@media (max-width: 760px){.css-16b0y2j{display:block;}}</style><button type="button" class="css-16b0y2j"><style data-emotion="css 4zleql">.css-4zleql{display:block;}</style><style data-emotion="css ibalvt">.css-ibalvt{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;}</style><style data-emotion="css bus8w9">.css-bus8w9{width:0.875rem;height:0.875rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;}</style><svg viewBox="0 0 24 24" class="css-bus8w9" xmlns="http://www.w3.org/2000/svg"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></li><style data-emotion="css tevsxp">.css-tevsxp{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}@media screen and (max-width: 460px){.css-tevsxp{width:100%;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;-webkit-justify-content:space-evenly;justify-content:space-evenly;}}</style><li class="css-tevsxp"><style data-emotion="css 1scq7w6">.css-1scq7w6{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--system-text-primary-dark);display:none;margin-right:8px;padding:8px;-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out;}@media screen and (max-width: 760px){.css-1scq7w6{display:block;}}</style><style data-emotion="css dep3f0">.css-dep3f0{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);background:transparent;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--system-text-primary-dark);display:none;margin-right:8px;padding:8px;-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out;}@media screen and (max-width: 760px){.css-dep3f0{display:block;}}</style><button id="mobile-search-expand" class="css-dep3f0 e132irl20"><style data-emotion="css 1y43q3c">.css-1y43q3c{cursor:pointer;display:block;}</style><style data-emotion="css 1y61uui">.css-1y61uui{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;cursor:pointer;display:block;}</style><style data-emotion="css 13ljknx">.css-13ljknx{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;cursor:pointer;display:block;}</style><svg viewBox="0 0 24 24" class="css-13ljknx" xmlns="http://www.w3.org/2000/svg"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg></button><style data-emotion="css weovyz">.css-weovyz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;}</style><div class="css-weovyz"><style data-emotion="css pv04m4">.css-pv04m4{margin:0;border-radius:0px;font-size:0.75rem;color:var(--system-text-primary-dark);background:transparent;}</style><style data-emotion="css 1xla0pq">.css-1xla0pq{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.625rem;padding:0.375rem 0.625rem;border-radius:0.125rem;margin:0;border-radius:0px;font-size:0.75rem;color:var(--system-text-primary-dark);background:transparent;}</style><button class="css-1xla0pq e132irl20"><style data-emotion="css 3bqe50">.css-3bqe50{stroke:currentColor;}</style><style data-emotion="css hfypzk">.css-hfypzk{width:20px;height:20px;stroke:currentColor;}</style><svg viewBox="0 0 20 20" fill="none" class="css-hfypzk" xmlns="http://www.w3.org/2000/svg"><circle cx="10.0001" cy="10" r="9.09091" stroke-width="1.5"></circle><path d="M10.2842 18.512C7.84969 16.4278 6.30688 13.3321 6.30688 9.87611C6.30688 6.5488 7.73691 3.55549 10.0159 1.47726" stroke-width="1.5"></path><path d="M9.71609 18.512C12.1505 16.4278 13.6934 13.3321 13.6934 9.87611C13.6934 6.5488 12.2633 3.55549 9.98435 1.47726" stroke-width="1.5"></path><line x1="1.81812" y1="6.52274" x2="18.1818" y2="6.52274" stroke-width="1.5"></line><line x1="0.90918" y1="12.8864" x2="18.1819" y2="12.8864" stroke-width="1.5"></line></svg></button><style data-emotion="css 5jfumo">.css-5jfumo{--arrow-size:5px;--arrow-offset:0.5rem;position:absolute;top:calc(100% + var(--arrow-size));display:none;background:var(--secondary-background-color);border-radius:0.25rem;z-index:1000;padding:0.5rem;box-shadow:0 3px 8px 0 rgba(22, 38, 59, 0.2);}.dark-mode .css-5jfumo{background-color:var(--primary-hover-color);}.css-5jfumo::before{content:'';position:absolute;display:block;top:calc(-1 * var(--arrow-size));border-left:var(--arrow-size) solid transparent;border-right:var(--arrow-size) solid transparent;border-bottom:var(--arrow-size) solid var(--background-color);width:0;height:0;z-index:1000;right:var(--arrow-offset);}</style><div class="css-5jfumo"><div class="css-1ejk3sh"><style data-emotion="css 1fnsbne">.css-1fnsbne{-webkit-text-decoration:none;text-decoration:none;color:var(--primary-text-color);}</style><style data-emotion="css 1ocafrb">.css-1ocafrb{display:block;padding:0.25rem 0.5rem;font-size:0.75rem;-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out;color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;-webkit-text-decoration:none;text-decoration:none;color:var(--primary-text-color);}.css-1ocafrb:hover{color:var(--text-color);cursor:pointer;background:var(--primary-hover-color);border-radius:0.25rem;}.dark-mode .css-1ocafrb:hover{background-color:var(--system-border-regular-dark);}</style><a class="css-1ocafrb" to="/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/">English</a><a class="css-1ocafrb" to="/es/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/es/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/">Español</a><a class="css-1ocafrb" to="/jp/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/jp/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/">日本語</a><a class="css-1ocafrb" to="/kr/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/kr/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/">한국어</a><a class="css-1ocafrb" to="/pt/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/pt/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/">Português</a></div></div></div><style data-emotion="css mljzwi">.css-mljzwi{font-size:0.75rem;color:var(--system-text-primary-dark);}@media screen and (max-width: 760px){.css-mljzwi{margin:0;}}</style><style data-emotion="css 1slxonv">@media screen and (max-width: 450px){.css-1slxonv{padding:0;}}</style><style data-emotion="css 1ra5igj">.css-1ra5igj{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.625rem;padding:0.375rem 0.625rem;border-radius:0.125rem;}@media screen and (max-width: 450px){.css-1ra5igj{padding:0;}}</style><button class="css-1ra5igj e132irl20"><style data-emotion="css mpl4ec">.css-mpl4ec{cursor:pointer;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;font-size:0.75rem;color:var(--system-text-primary-dark);}.css-mpl4ec path{-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transform-origin:center;transition-timing-function:ease-out;}.dark-mode .css-mpl4ec{opacity:0.8;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;}.dark-mode .css-mpl4ec line{stroke-linecap:butt;}.dark-mode .css-mpl4ec path{-webkit-transform:rotate(0.5turn) translate(3%, 3%);-moz-transform:rotate(0.5turn) translate(3%, 3%);-ms-transform:rotate(0.5turn) translate(3%, 3%);transform:rotate(0.5turn) translate(3%, 3%);transform-origin:center;-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transition-timing-function:ease-out;}@media screen and (max-width: 760px){.css-mpl4ec{margin:0;}}</style><style data-emotion="css 63f8r9">.css-63f8r9{stroke:currentColor;cursor:pointer;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;font-size:0.75rem;color:var(--system-text-primary-dark);}.css-63f8r9 path{fill:currentColor;}.css-63f8r9 path{-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transform-origin:center;transition-timing-function:ease-out;}.dark-mode .css-63f8r9{opacity:0.8;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;}.dark-mode .css-63f8r9 line{stroke-linecap:butt;}.dark-mode .css-63f8r9 path{-webkit-transform:rotate(0.5turn) translate(3%, 3%);-moz-transform:rotate(0.5turn) translate(3%, 3%);-ms-transform:rotate(0.5turn) translate(3%, 3%);transform:rotate(0.5turn) translate(3%, 3%);transform-origin:center;-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transition-timing-function:ease-out;}@media screen and (max-width: 760px){.css-63f8r9{margin:0;}}</style><style data-emotion="css 10vc1eo">.css-10vc1eo{width:27px;height:27px;stroke:currentColor;cursor:pointer;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;font-size:0.75rem;color:var(--system-text-primary-dark);}.css-10vc1eo path{fill:currentColor;}.css-10vc1eo path{-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transform-origin:center;transition-timing-function:ease-out;}.dark-mode .css-10vc1eo{opacity:0.8;-webkit-transition:opacity 250ms;transition:opacity 250ms;transition-timing-function:ease-out;}.dark-mode .css-10vc1eo line{stroke-linecap:butt;}.dark-mode .css-10vc1eo path{-webkit-transform:rotate(0.5turn) translate(3%, 3%);-moz-transform:rotate(0.5turn) translate(3%, 3%);-ms-transform:rotate(0.5turn) translate(3%, 3%);transform:rotate(0.5turn) translate(3%, 3%);transform-origin:center;-webkit-transition:-webkit-transform 250ms;transition:transform 250ms;transition-timing-function:ease-out;}@media screen and (max-width: 760px){.css-10vc1eo{margin:0;}}</style><svg class="css-10vc1eo" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.0001 20.0722C14.8758 20.0722 16.6746 19.3271 18.0009 18.0008C19.3272 16.6745 20.0723 14.8757 20.0723 13C20.0723 11.1244 19.3272 9.32553 18.0009 7.99924C16.6746 6.67296 14.8758 5.92786 13.0001 5.92786V13L13.0001 20.0722Z" fill="#F3F4F4"></path><circle cx="12.9999" cy="13" r="7.57215" stroke="#F3F4F4"></circle><line x1="13.1826" y1="0.5" x2="13.1826" y2="2.76407" stroke="#F3F4F4" stroke-linecap="round"></line><line x1="25.6125" y1="13.106" x2="23.3485" y2="13.106" stroke="#F3F4F4" stroke-linecap="round"></line><line x1="13.106" y1="23.3485" x2="13.106" y2="25.6126" stroke="#F3F4F4" stroke-linecap="round"></line><line x1="22.0242" y1="4.26704" x2="20.4232" y2="5.86798" stroke="#F3F4F4" stroke-linecap="round"></line><line x1="21.8998" y1="21.9701" x2="20.2989" y2="20.3692" stroke="#F3F4F4" stroke-linecap="round"></line></svg></button></li><style data-emotion="css asx9fy">.css-asx9fy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:right;-webkit-box-align:right;-ms-flex-align:right;align-items:right;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}</style><li class="css-asx9fy"><style data-emotion="css 171eanu">.css-171eanu{white-space:nowrap;font-size:18px;}.css-171eanu span{color:var(--system-text-primary-dark);}@media screen and (max-width: 760px){.css-171eanu{display:none;}}</style><style data-emotion="css bvr2c8">.css-bvr2c8{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.75rem;white-space:nowrap;font-size:18px;}.css-bvr2c8 span{color:var(--system-text-primary-dark);}@media screen and (max-width: 760px){.css-bvr2c8{display:none;}}</style><a variant="link" class="css-bvr2c8 e132irl20" href="https://one.newrelic.com" target="_blank" rel="noopener"><span>Log in</span></a><style data-emotion="css 1ji1fdu">.css-1ji1fdu{font-size:18px;white-space:nowrap;padding-right:0;}.css-1ji1fdu span{color:var(--brand-button-primary-accent);}</style><style data-emotion="css 108z63l">.css-108z63l{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.75rem;font-size:18px;white-space:nowrap;padding-right:0;}.css-108z63l span{color:var(--brand-button-primary-accent);}</style><a class="css-108z63l e132irl20" variant="link" href="https://newrelic.com/signup" target="_blank" rel="noopener"><span>Start now</span></a></li></ul></div></div><style data-emotion="css 1772kps">.css-1772kps{display:none;padding:1rem 1.5rem;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (max-width: 760px){.css-1772kps{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><header class="css-1772kps"><style data-emotion="css g65o95">.css-g65o95{-webkit-text-decoration:none;text-decoration:none;}</style><a class="css-g65o95" href="/"><style data-emotion="css 4zleql">.css-4zleql{display:block;}</style><style data-emotion="css ziuxi6">.css-ziuxi6{width:150px;display:block;}.css-ziuxi6 .text-color{fill:var(--primary-text-color);}.css-ziuxi6 .brand-color{fill:#1ce783;}</style><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.95 98.52" class="css-ziuxi6"><path class="text-color" d="M369.63,75.57H384.9c14.61,0,23.85,9.38,23.85,24.05s-9.24,24-23.85,24H369.63ZM384.9,118.1c10.92,0,17.55-7.3,17.55-18.48s-6.63-18.49-17.61-18.49h-8.91v37Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M429.51,124.4c-9.58,0-16.28-7.37-16.28-18.22S419.93,88,429.51,88s16.28,7.37,16.28,18.22S439.09,124.4,429.51,124.4Zm0-5.16c6.17,0,10.18-5.09,10.18-13.06s-4-13.13-10.18-13.13-10.18,5.09-10.18,13.13S423.35,119.24,429.51,119.24Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M467.56,119.11c4.82,0,7.7-3.08,8.71-7.44l5.36,2.48C480,120,474.86,124.4,467.56,124.4c-9.78,0-16.55-7.44-16.55-18.22S457.78,88,467.56,88c7.3,0,12.26,4.22,13.93,10.05l-5.22,2.61c-1-4.29-3.89-7.43-8.71-7.43-6.23,0-10.52,5-10.52,13S461.33,119.11,467.56,119.11Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M489.06,112.81a11.7,11.7,0,0,0,10.72,6.57c4.08,0,7.7-1.75,7.7-5.56s-3.35-4.36-9.11-5.56-11.79-2.55-11.79-9.72C486.58,92.31,492,88,499.44,88c6.3,0,11.46,3.08,13.53,7.23l-4.28,3.42a10.27,10.27,0,0,0-9.52-5.69c-4,0-6.69,2-6.69,5.15,0,3.29,3.08,3.89,8,5,6,1.41,12.93,2.61,12.93,10.25,0,6.7-6.1,11.12-13.6,11.12-6.37,0-12.73-2.75-15.41-8.17Z" transform="translate(-251.43 -50.58)"></path><path class="brand-color" d="M283.62,100.83h24v4h-24Zm0,12h18v-4h-18Zm33-27.8v35.8a2,2,0,0,1-2,2h-38a2,2,0,0,1-2-2v-44a2,2,0,0,1,2-2h29.8a2,2,0,0,1,1.42.59l8.19,8.2A2,2,0,0,1,316.62,85Zm-4,33.8v-32h-8v-8h-26v40Zm-29-22h24v-4h-24Z" transform="translate(-251.43 -50.58)"></path></svg></a><style data-emotion="css fhxb3m">.css-fhxb3m{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-fhxb3m"><style data-emotion="css 10g5aad">.css-10g5aad{--line-width:1rem;--x-padding:1rem;display:block;border:0;cursor:pointer;width:calc(var(--line-width) + 2 * var(--x-padding));outline:none;padding:0.5rem 1rem;background:transparent;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform 0.2s ease-out;transition:transform 0.2s ease-out;}.css-10g5aad:active{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8);}</style><button aria-expanded="false" aria-label="Mobile Menu" type="button" class="css-10g5aad"><style data-emotion="css 6ehe0v">.css-6ehe0v{width:100%;height:2px;background-color:var(--primary-text-color);margin:2px 0;border-radius:5px;-webkit-transition:0.18s;transition:0.18s;}</style><div class="css-6ehe0v"></div><div class="css-6ehe0v"></div><div class="css-6ehe0v"></div></button></div></header><style data-emotion="css n1p8jg">.css-n1p8jg{--sidebar-width:340px;-webkit-font-smoothing:antialiased;font-size:1.125rem;}@media screen and (max-width: 1240px){.css-n1p8jg{--sidebar-width:278px;}}</style><style data-emotion="css 1uz5ayg">.css-1uz5ayg{overflow:clip;width:100%;}</style><div class="css-1uz5ayg"><style data-emotion="css 1nvgao0">.css-1nvgao0{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-areas:'sidebar main' 'sidebar footer';grid-template-rows:1fr auto;min-height:calc(100vh - var(--global-header-height));width:100%;-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;--sidebar-width:340px;-webkit-font-smoothing:antialiased;font-size:1.125rem;}@media screen and (max-width: 760px){.css-1nvgao0{grid-template-columns:minmax(0, 1fr);grid-template-areas:'main' 'footer';grid-template-rows:unset;-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;width:100%;}}@media screen and (max-width: 1240px){.css-1nvgao0{--sidebar-width:278px;}}</style><div class="css-1nvgao0"><style data-emotion="css zvy3am">.css-zvy3am{grid-column:1;grid-row:1;height:calc(100vh - var(--global-header-height));left:269px;padding:1.5rem 0;position:-webkit-sticky;position:sticky;top:var(--global-header-height);width:0;z-index:1;}@media (max-width: 760px){.css-zvy3am{display:none;}}@media (max-width: 1240px){.css-zvy3am{left:208px;}}</style><div class="css-zvy3am"><style data-emotion="css 10gp793">.css-10gp793{background:var(--system-background-hover-dark);color:var(--brand-button-primary-accent);height:40px;width:40px;padding:0;border-radius:50%;-webkit-transition:300ms translate ease;transition:300ms translate ease;}</style><style data-emotion="css 1ci9pnj">.css-1ci9pnj{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);background:transparent;background:var(--system-background-hover-dark);color:var(--brand-button-primary-accent);height:40px;width:40px;padding:0;border-radius:50%;-webkit-transition:300ms translate ease;transition:300ms translate ease;}</style><button class="css-1ci9pnj e132irl20"><style data-emotion="css 19nf4is">.css-19nf4is{fill:currentColor;height:14px;overflow:visible;stroke:currentColor;stroke-width:0.25;width:14px;}</style><style data-emotion="css 1tnnavn">.css-1tnnavn{width:1rem;height:1rem;fill:currentColor;height:14px;overflow:visible;stroke:currentColor;stroke-width:0.25;width:14px;}</style><svg viewBox="0 0 16 16" class="css-1tnnavn" xmlns="http://www.w3.org/2000/svg"><style data-emotion="css 1tf5rjr">.css-1tf5rjr{transform-origin:center;}</style><path d="M16 8.76923L16 7.23077L6.92308 7.23077L11.0769 3.23077L9.84615 2L4 8L9.84616 14L11.0769 12.7692L6.92308 8.76923L16 8.76923Z" style="transform:rotate(180deg)" class="css-1tf5rjr"></path><rect width="2" height="16" style="transform:translate3d(14px,0,0)" class="css-1tf5rjr"></rect></svg></button></div><style data-emotion="css b586wv">.css-b586wv{padding:0;background:var(--erno-black);}.css-b586wv >div{height:100%;overflow:hidden;}.css-b586wv hr{border:none;height:1rem;margin:0;}</style><style data-emotion="css 3tb8to">.css-3tb8to{grid-area:sidebar;height:calc(100vh - var(--global-header-height));position:-webkit-sticky;position:sticky;top:var(--global-header-height);padding:0;background:var(--erno-black);}@media screen and (max-width: 760px){.css-3tb8to{display:none;}}.css-3tb8to >div{height:100%;overflow:hidden;}.css-3tb8to hr{border:none;height:1rem;margin:0;}</style><aside data-swiftype-index="false" class="css-3tb8to"><style data-emotion="css n10ylw">.css-n10ylw{position:absolute;top:0;bottom:0;left:0;right:0;padding:1.5rem;overflow:auto;}</style><div class="css-n10ylw"><style data-emotion="css 1k9bk4">.css-1k9bk4{height:55px;}</style><div class="css-1k9bk4"><style data-emotion="css 1066lcq">.css-1066lcq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-1066lcq"><style data-emotion="css cn4dqi">.css-cn4dqi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;color:var(--system-text-primary-dark);}.css-cn4dqi:hover{color:var(--system-text-primary-dark);}</style><a class="css-cn4dqi" href="/"><style data-emotion="css 1i59lnz">.css-1i59lnz .text-color{fill:var(--system-text-primary-dark);}</style><style data-emotion="css lj5hrk">.css-lj5hrk{width:118px;}.css-lj5hrk .text-color{fill:var(--primary-text-color);}.css-lj5hrk .brand-color{fill:#1ce783;}.css-lj5hrk .text-color{fill:var(--system-text-primary-dark);}</style><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.95 98.52" class="css-lj5hrk"><path class="text-color" d="M369.63,75.57H384.9c14.61,0,23.85,9.38,23.85,24.05s-9.24,24-23.85,24H369.63ZM384.9,118.1c10.92,0,17.55-7.3,17.55-18.48s-6.63-18.49-17.61-18.49h-8.91v37Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M429.51,124.4c-9.58,0-16.28-7.37-16.28-18.22S419.93,88,429.51,88s16.28,7.37,16.28,18.22S439.09,124.4,429.51,124.4Zm0-5.16c6.17,0,10.18-5.09,10.18-13.06s-4-13.13-10.18-13.13-10.18,5.09-10.18,13.13S423.35,119.24,429.51,119.24Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M467.56,119.11c4.82,0,7.7-3.08,8.71-7.44l5.36,2.48C480,120,474.86,124.4,467.56,124.4c-9.78,0-16.55-7.44-16.55-18.22S457.78,88,467.56,88c7.3,0,12.26,4.22,13.93,10.05l-5.22,2.61c-1-4.29-3.89-7.43-8.71-7.43-6.23,0-10.52,5-10.52,13S461.33,119.11,467.56,119.11Z" transform="translate(-251.43 -50.58)"></path><path class="text-color" d="M489.06,112.81a11.7,11.7,0,0,0,10.72,6.57c4.08,0,7.7-1.75,7.7-5.56s-3.35-4.36-9.11-5.56-11.79-2.55-11.79-9.72C486.58,92.31,492,88,499.44,88c6.3,0,11.46,3.08,13.53,7.23l-4.28,3.42a10.27,10.27,0,0,0-9.52-5.69c-4,0-6.69,2-6.69,5.15,0,3.29,3.08,3.89,8,5,6,1.41,12.93,2.61,12.93,10.25,0,6.7-6.1,11.12-13.6,11.12-6.37,0-12.73-2.75-15.41-8.17Z" transform="translate(-251.43 -50.58)"></path><path class="brand-color" d="M283.62,100.83h24v4h-24Zm0,12h18v-4h-18Zm33-27.8v35.8a2,2,0,0,1-2,2h-38a2,2,0,0,1-2-2v-44a2,2,0,0,1,2-2h29.8a2,2,0,0,1,1.42.59l8.19,8.2A2,2,0,0,1,316.62,85Zm-4,33.8v-32h-8v-8h-26v40Zm-29-22h24v-4h-24Z" transform="translate(-251.43 -50.58)"></path></svg></a></div></div><style data-emotion="css j9s4a8">.css-j9s4a8{overflow-x:hidden;height:calc( 100vh - 55px - var(--global-header-height) - 3rem );}</style><style data-emotion="css 1im8jd2">.css-1im8jd2{height:100%;overflow:auto;margin:0 0 16px;-ms-overflow-style:none;scrollbar-width:none;overflow-x:hidden;height:calc( 100vh - 55px - var(--global-header-height) - 3rem );}.css-1im8jd2::-webkit-scrollbar{display:none;}.css-1im8jd2 span,.css-1im8jd2 svg{color:var(--system-text-primary-dark);opacity:0.8;}</style><nav role="navigation" aria-label="Navigation" id="nav" class="css-1im8jd2"><div><style data-emotion="css d89hgk">.css-d89hgk{color:var(--system-text-primary-dark);opacity:0.8;margin:0;font-size:14px;font-weight:500;margin-top:1rem;}</style><p data-flip-config="{"translate":true}" data-flip-id="start-here" data-portal-key="portal" class="css-d89hgk">START HERE</p><style data-emotion="css 1icqfzt">.css-1icqfzt{--icon-size:1.5rem;--icon-spacing:0.5rem;--nav-link-padding:1rem;display:block;padding-left:8px;border-left:none;}@media screen and (max-width: 760px){.css-1icqfzt{padding-left:0;}}</style><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="get-started-with-new-relic" data-portal-key="portal" class="css-1icqfzt"><style data-emotion="css 5ce9ri">.css-5ce9ri{padding-left:var(--nav-link-padding);}.css-5ce9ri:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-5ce9ri{--border-width:4px;padding-left:calc(var(--nav-link-padding) - var(--border-width));}}</style><style data-emotion="css 15qzw1h">.css-15qzw1h{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;padding-left:var(--nav-link-padding);}.css-15qzw1h:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-15qzw1h{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-15qzw1h:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-15qzw1h{--border-width:4px;padding-left:calc(var(--nav-link-padding) - var(--border-width));}}</style><a class="css-15qzw1h" name="/docs/new-relic-solutions/get-started/intro-new-relic/" href="/docs/new-relic-solutions/get-started/intro-new-relic/"><div><style data-emotion="css 82a6rk">.css-82a6rk{-webkit-flex:1;-ms-flex:1;flex:1;}</style><span class="css-82a6rk">Get started with New Relic</span></div></a></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="tutorials-and-walkthroughs" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Tutorials and walkthroughs</span></div><style data-emotion="css 15w5tr6">.css-15w5tr6{font-size:1rem;padding:0.25rem;-webkit-transform:translateX(0.25rem);-moz-transform:translateX(0.25rem);-ms-transform:translateX(0.25rem);transform:translateX(0.25rem);}</style><style data-emotion="css 1vfs8c2">.css-1vfs8c2{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);background:transparent;font-size:0.625rem;padding:0.375rem 0.625rem;border-radius:0.125rem;font-size:1rem;padding:0.25rem;-webkit-transform:translateX(0.25rem);-moz-transform:translateX(0.25rem);-ms-transform:translateX(0.25rem);transform:translateX(0.25rem);}</style><button class="css-1vfs8c2 e132irl20"><style data-emotion="css bwg7n1">.css-bwg7n1{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><style data-emotion="css g1pzz2">.css-g1pzz2{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><style data-emotion="css 1tyf2qy">.css-1tyf2qy{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="guides-and-best-practices" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Guides and best practices</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><p data-flip-config="{"translate":true}" data-flip-id="monitor-your-data" data-portal-key="portal" class="css-d89hgk">MONITOR YOUR DATA</p><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="ai-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">AI monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><style data-emotion="css 12ap5p1">.css-12ap5p1{--icon-size:1.5rem;--icon-spacing:0.5rem;--nav-link-padding:1rem;display:block;padding-left:8px;border-left:none;}.css-12ap5p1 span,.css-12ap5p1 svg{color:white;opacity:1;}@media screen and (max-width: 760px){.css-12ap5p1{padding-left:0;}}</style><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="application-performance-monitoring" data-portal-key="portal" class="css-12ap5p1"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Application performance monitoring</span></div><button class="css-1vfs8c2 e132irl20"><style data-emotion="css 7j4sbu">.css-7j4sbu{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><style data-emotion="css zon0hc">.css-zon0hc{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><style data-emotion="css 1mejuza">.css-1mejuza{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:0.2s ease-out;transition:0.2s ease-out;}</style><svg viewBox="0 0 24 24" class="css-1mejuza" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><style data-emotion="css 62a6bj">.css-62a6bj{--icon-size:1.5rem;--icon-spacing:0.5rem;--nav-link-padding:1rem;display:block;padding-left:var(--nav-link-padding);border-left:solid var(--system-background-hover-dark) 2px;}@media screen and (max-width: 760px){.css-62a6bj{padding-left:0;}}</style><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,get-started-with-apm" data-portal-key="portal" class="css-62a6bj"><style data-emotion="css 1jh6fjd">.css-1jh6fjd{padding-left:var(--nav-link-padding);}.css-1jh6fjd:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-1jh6fjd{--border-width:4px;padding-left:calc(2 * var(--nav-link-padding) - var(--border-width));}}</style><style data-emotion="css 4pg4xz">.css-4pg4xz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;padding-left:var(--nav-link-padding);}.css-4pg4xz:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-4pg4xz{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-4pg4xz:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-4pg4xz{--border-width:4px;padding-left:calc(2 * var(--nav-link-padding) - var(--border-width));}}</style><a class="css-4pg4xz" name="/docs/apm/new-relic-apm/getting-started/introduction-apm/" href="/docs/apm/new-relic-apm/getting-started/introduction-apm/"><div><span class="css-82a6rk">Get started with APM</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,my-app-is-slow" data-portal-key="portal" class="css-62a6bj"><a class="css-4pg4xz" name="/docs/tutorial-app-slow/root-causes/" href="/docs/tutorial-app-slow/root-causes/"><div><span class="css-82a6rk">My app is slow</span><style data-emotion="css 1o55wq4">.css-1o55wq4{display:inline;margin-left:0.5rem;padding:1px 4px;background:#103156;border-radius:3px;color:#3d9dff;font-size:0.75rem;font-weight:400;}</style><p class="css-1o55wq4 e1f1cdjc0">Tutorial</p></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,guides" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">Guides</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">APM agents</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1mejuza" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,go-monitoring" data-portal-key="portal" class="css-62a6bj"><style data-emotion="css 1gccsdp">.css-1gccsdp{padding-left:var(--nav-link-padding);}.css-1gccsdp:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-1gccsdp{--border-width:4px;padding-left:calc(3 * var(--nav-link-padding) - var(--border-width));}}</style><style data-emotion="css 11j9qbt">.css-11j9qbt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;padding-left:var(--nav-link-padding);}.css-11j9qbt:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-11j9qbt{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-11j9qbt:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-11j9qbt{--border-width:4px;padding-left:calc(3 * var(--nav-link-padding) - var(--border-width));}}</style><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Go monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,java-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Java monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,net-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">.NET monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,nodejs-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Node.js monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">PHP monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1mejuza" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,introduction-to-php-monitoring" data-portal-key="portal" class="css-62a6bj"><style data-emotion="css d2812p">.css-d2812p{padding-left:var(--nav-link-padding);}.css-d2812p:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-d2812p{--border-width:4px;padding-left:calc(4 * var(--nav-link-padding) - var(--border-width));}}</style><style data-emotion="css yqyrzl">.css-yqyrzl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;padding-left:var(--nav-link-padding);}.css-yqyrzl:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-yqyrzl{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-yqyrzl:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-yqyrzl{--border-width:4px;padding-left:calc(4 * var(--nav-link-padding) - var(--border-width));}}</style><a class="css-yqyrzl" name="/docs/apm/agents/php-agent/getting-started/introduction-new-relic-php/" href="/docs/apm/agents/php-agent/getting-started/introduction-new-relic-php/"><div><span class="css-82a6rk">Introduction to PHP monitoring</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,monitor-your-php-application" data-portal-key="portal" class="css-62a6bj"><a class="css-yqyrzl" name="/docs/apm/agents/php-agent/getting-started/monitor-your-php-app/" href="/docs/apm/agents/php-agent/getting-started/monitor-your-php-app/"><div><span class="css-82a6rk">Monitor your PHP application</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,compatibility-and-releases" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Compatibility and releases</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,installation" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Installation</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,advanced-installation" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Advanced installation</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,configuration" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Configuration</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,php-agent-api" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">PHP agent API</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,attributes" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Attributes</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,features" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Features</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Frameworks and libraries</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1mejuza" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,integrate-support-for-new-relic" data-portal-key="portal" class="css-62a6bj"><style data-emotion="css lt2m3h">.css-lt2m3h{padding-left:var(--nav-link-padding);background:var(--system-background-hover-dark);}.css-lt2m3h:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-lt2m3h{--border-width:4px;padding-left:calc(5 * var(--nav-link-padding) - var(--border-width));}}.css-lt2m3h span{font-weight:600;}</style><style data-emotion="css 1fbbjyt">.css-1fbbjyt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;background:var(--nav-highlight);padding-left:var(--nav-link-padding);background:var(--system-background-hover-dark);}.css-1fbbjyt:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-1fbbjyt{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-1fbbjyt:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-1fbbjyt{--border-width:4px;padding-left:calc(5 * var(--nav-link-padding) - var(--border-width));}}.css-1fbbjyt span{font-weight:600;}</style><a aria-current="page" class="css-1fbbjyt" name="/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/" href="/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/"><div><span class="css-82a6rk">Integrate support for New Relic</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,analyze-phpunit-test-data-in-new-relic" data-portal-key="portal" class="css-62a6bj"><style data-emotion="css 1lm11rt">.css-1lm11rt{padding-left:var(--nav-link-padding);}.css-1lm11rt:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-1lm11rt{--border-width:4px;padding-left:calc(5 * var(--nav-link-padding) - var(--border-width));}}</style><style data-emotion="css 3xq6h9">.css-3xq6h9{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;cursor:pointer;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;padding:0.5rem var(--nav-link-padding);margin:0 calc(var(--nav-link-padding) * -1);font-size:0.875rem;-webkit-text-decoration:none;text-decoration:none;padding-left:var(--nav-link-padding);}.css-3xq6h9:hover{color:var(--secondary-text-color);}@media screen and (max-width: 760px){.css-3xq6h9{border-radius:0;border-left:var(--border-width) solid transparent;}}.css-3xq6h9:hover{background:var(--system-background-hover-dark);}@media screen and (max-width: 760px){.css-3xq6h9{--border-width:4px;padding-left:calc(5 * var(--nav-link-padding) - var(--border-width));}}</style><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/analyze-phpunit-test-data-new-relic/" href="/docs/apm/agents/php-agent/frameworks-libraries/analyze-phpunit-test-data-new-relic/"><div><span class="css-82a6rk">Analyze PHPUnit test data in New Relic</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,aws-elastic-beanstalk-installation" data-portal-key="portal" class="css-62a6bj"><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/aws-elastic-beanstalk-installation-php/" href="/docs/apm/agents/php-agent/frameworks-libraries/aws-elastic-beanstalk-installation-php/"><div><span class="css-82a6rk">AWS Elastic Beanstalk installation</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,drupal-specific-functionality" data-portal-key="portal" class="css-62a6bj"><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/drupal-specific-functionality/" href="/docs/apm/agents/php-agent/frameworks-libraries/drupal-specific-functionality/"><div><span class="css-82a6rk">Drupal-specific functionality</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,guzzle" data-portal-key="portal" class="css-62a6bj"><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/guzzle/" href="/docs/apm/agents/php-agent/frameworks-libraries/guzzle/"><div><span class="css-82a6rk">Guzzle</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,magento-specific-functionality" data-portal-key="portal" class="css-62a6bj"><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/magento-specific-functionality/" href="/docs/apm/agents/php-agent/frameworks-libraries/magento-specific-functionality/"><div><span class="css-82a6rk">Magento-specific functionality</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,predis-library" data-portal-key="portal" class="css-62a6bj"><a class="css-3xq6h9" name="/docs/apm/agents/php-agent/frameworks-libraries/predis-library-php/" href="/docs/apm/agents/php-agent/frameworks-libraries/predis-library-php/"><div><span class="css-82a6rk">Predis library</span></div></a></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,frameworks-and-libraries,wordpress" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-3xq6h9" name=""><div><span class="css-82a6rk">WordPress</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,other-integrations" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Other integrations</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,php-monitoring,troubleshooting" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-yqyrzl" name=""><div><span class="css-82a6rk">Troubleshooting</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,python-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Python monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,ruby-monitoring" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Ruby monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-agents,advanced-configuration" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-11j9qbt" name=""><div><span class="css-82a6rk">Advanced configuration</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,transactions" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">Transactions</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,view-application-reports" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">View application reports</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,apm-ui-pages" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">APM UI pages</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,maintenance-and-troubleshooting" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">Maintenance and troubleshooting</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"translate":true}" data-flip-id="application-performance-monitoring,experimental-agents" data-portal-key="portal" class="css-62a6bj"><div instrumentation="[object Object]" class="css-4pg4xz" name=""><div><span class="css-82a6rk">Experimental agents</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="browser-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Browser monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="infrastructure-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Infrastructure monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="kubernetes-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Kubernetes monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="log-management" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Log management</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="mobile-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Mobile monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="model-performance-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Model performance monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="network-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Network monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="opentelemetry" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">OpenTelemetry</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="serverless-function-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Serverless function monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="synthetic-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Synthetic monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="video-agents" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Video agents</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="website-performance-monitoring" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Website performance monitoring</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><p data-flip-config="{"translate":true}" data-flip-id="data-insights" data-portal-key="portal" class="css-d89hgk">DATA INSIGHTS</p><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="alerts" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Alerts</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="change-tracking" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Change tracking</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="charts-dashboards-and-querying" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Charts, dashboards, and querying</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="codestream" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">CodeStream</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="distributed-tracing" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Distributed tracing</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="errors-inbox" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Errors inbox</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="nrql" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">NRQL</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="service-level-management" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Service level management</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><p data-flip-config="{"translate":true}" data-flip-id="security" data-portal-key="portal" class="css-d89hgk">SECURITY</p><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="interactive-application-security-testing-iast" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Interactive application security testing (IAST)</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="vulnerability-management" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Vulnerability management</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><p data-flip-config="{"translate":true}" data-flip-id="latest-updates" data-portal-key="portal" class="css-d89hgk">LATEST UPDATES</p><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="release-notes" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Release notes</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="whats-new" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">What's new?</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="end-of-life-announcements" data-portal-key="portal" class="css-1icqfzt"><a class="css-15qzw1h" name="/eol/" href="/eol/"><div><span class="css-82a6rk">End-of-life announcements</span></div></a></div><p data-flip-config="{"translate":true}" data-flip-id="admin-and-data" data-portal-key="portal" class="css-d89hgk">ADMIN AND DATA</p><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="account--user-management" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Account & user management</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="data-and-apis" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Data and APIs</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="data-dictionary" data-portal-key="portal" class="css-1icqfzt"><a class="css-15qzw1h" name="/attribute-dictionary/" href="/attribute-dictionary/"><div><span class="css-82a6rk">Data dictionary</span></div></a></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="security-and-privacy" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Security and privacy</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div><div data-flip-config="{"opacity":true,"translate":true}" data-flip-id="licenses" data-portal-key="portal" class="css-1icqfzt"><div instrumentation="[object Object]" class="css-15qzw1h" name=""><div><span class="css-82a6rk">Licenses</span></div><button class="css-1vfs8c2 e132irl20"><svg viewBox="0 0 24 24" class="css-1tyf2qy" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button></div></div></div></nav></div></aside><style data-emotion="css kocmdw">.css-kocmdw{display:block;position:relative;padding-top:2.75rem;}@media (min-width: 1241px){.css-kocmdw{padding-right:1.5rem;}}.css-kocmdw.main-transition-enter{-webkit-translate:50px;-moz-translate:50px;-ms-translate:50px;translate:50px;}.css-kocmdw.main-transition-enter-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-kocmdw.main-transition-enter-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}.css-kocmdw.main-transition-exit{-webkit-translate:-50px;-moz-translate:-50px;-ms-translate:-50px;translate:-50px;}.css-kocmdw.main-transition-exit-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-kocmdw.main-transition-exit-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}</style><style data-emotion="css ig5oi2">.css-ig5oi2{grid-area:main;padding:var(--site-content-padding);max-width:var(--site-max-width);margin:0 auto;width:100%;display:block;position:relative;padding-top:2.75rem;}@media screen and (max-width: 1000px){.css-ig5oi2{padding:1.5rem;}}@media (min-width: 1241px){.css-ig5oi2{padding-right:1.5rem;}}.css-ig5oi2.main-transition-enter{-webkit-translate:50px;-moz-translate:50px;-ms-translate:50px;translate:50px;}.css-ig5oi2.main-transition-enter-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ig5oi2.main-transition-enter-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}.css-ig5oi2.main-transition-exit{-webkit-translate:-50px;-moz-translate:-50px;-ms-translate:-50px;translate:-50px;}.css-ig5oi2.main-transition-exit-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ig5oi2.main-transition-exit-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}</style><main class="css-ig5oi2"><style data-emotion="css 1qbq6n">.css-1qbq6n{display:grid;grid-template-areas:'mt-disclaimer page-tools' 'page-title page-tools' 'content page-tools';grid-template-columns:minmax(0, 1fr) 12.8125rem;grid-column-gap:5rem;}.css-1qbq6n iframe{max-width:100%;}@media screen and (max-width: 1240px){.css-1qbq6n{grid-template-areas:'mt-disclaimer' 'page-title' 'content';grid-template-columns:minmax(0, 1fr);}}</style><div class="css-1qbq6n"><style data-emotion="css v50zng">.css-v50zng{grid-area:page-title;}.css-v50zng::before{content:'';display:block;margin-top:-5px;}</style><h1 class="css-v50zng">PHP frameworks: Integrate support for New Relic</h1><style data-emotion="css 1sxg93g">.css-1sxg93g{grid-area:content;}</style><article data-swiftype-name="body" data-swiftype-type="text" class="css-1sxg93g"><style data-emotion="css 12dd90h">.css-12dd90h{--block-element-spacing:1.5rem;--text-spacing:var(--paragraph-spacing);}.css-12dd90h >*:first-of-type{margin-top:0;}.css-12dd90h ul,.css-12dd90h ol{counter-reset:listitem;}.css-12dd90h ul:not(:last-child),.css-12dd90h ol:not(:last-child){margin-bottom:var(--text-spacing);}.css-12dd90h ul li p:last-of-type,.css-12dd90h ol li p:last-of-type{margin-bottom:0;}.css-12dd90h ol>li{counter-increment:listitem 1;list-style-type:none;position:relative;}.css-12dd90h ol>li::before{background:var(--border-color);border-radius:50%;color:var(--system-text-primary);content:counter(listitem);font-size:12px;font-weight:600;height:10px;left:-28px;line-height:10px;padding:5px 0;position:absolute;text-align:center;top:6px;width:20px;}.css-12dd90h ol>li code{line-height:1.5;}.css-12dd90h blockquote:not(:last-child){margin-bottom:var(--block-element-spacing);}.css-12dd90h figcaption{margin-bottom:var(--text-spacing);}.css-12dd90h h2:not(:first-of-type){margin-top:2rem;}.css-12dd90h h3:not(:first-of-type),.css-12dd90h h4:not(:first-of-type){margin-top:1.5rem;}.css-12dd90h h2+h3{margin-top:1rem!important;}.css-12dd90h h3+h4{margin-top:1rem!important;}</style><div class="css-12dd90h"><p>This document is aimed at the developers or maintainers of PHP frameworks. It suggests ways to extend your framework by adding support for New Relic.</p><p>The PHP agent supports frameworks by figuring out where in the framework code web transactions can be appropriately named, and naming web transactions based on information found in the class, function call, etc. This solution is fragile and subject to the developers altering their code. New Relic encourages framework developers to put in the few calls needed to improve the out-of-box user experience with the framework they maintain.</p><h2 id="frameworks" style="position:relative">Help your users <style data-emotion="css 21sua1">.css-21sua1{background:none;border:none;width:0;padding:0;}</style><button type="button" name="copy header link" class="css-21sua1 e1daml4q1"><a href="#frameworks" aria-label="frameworks permalink" class="anchor after"><svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></button></h2><p>New Relic can identify the web transaction name and where to insert JavaScript headers and footers for New Relic's <style data-emotion="css 1btm2ft">.css-1btm2ft{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:none;border:0;border-bottom:1px solid var(--primary-text-color);color:var(--primary-text-color);cursor:pointer;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:1px;margin-right:2px;}</style><button aria-describedby="license-key-explainer-0.9293231154804231" type="button" class="css-1btm2ft">browser monitoring<style data-emotion="css 1d5o6hd">.css-1d5o6hd{margin-left:0.25em;}</style><style data-emotion="css 1eb8pd7">.css-1eb8pd7{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:0.25em;}</style><style data-emotion="css u04r6d">.css-u04r6d{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:0.25em;}</style><svg viewBox="0 0 24 24" class="css-u04r6d" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></button>. However, to improve end users' experience, increase performance, and make code maintenance easier, framework developers should do this work themselves.</p><p>It is up to the developers of the various frameworks to decide if they want to help their users by adding native support for New Relic. In almost all cases adding support for New Relic involves inserting three API calls somewhere in the framework code.</p><h2 id="terminology" style="position:relative">Terminology<button type="button" name="copy header link" class="css-21sua1 e1daml4q1"><a href="#terminology" aria-label="terminology permalink" class="anchor after"><svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></button></h2><p>In order to understand how to best add support for New Relic, it is useful to understand some of the key points of interaction.</p><style data-emotion="css 1r12iee">.css-1r12iee:not(:last-child){margin-bottom:var(--block-element-spacing);}</style><style data-emotion="css 1auewn4">.css-1auewn4{width:100%;overflow-x:auto;}.css-1auewn4:not(:last-child){margin-bottom:var(--block-element-spacing);}</style><div class="css-1auewn4"><style data-emotion="css 154prth">.css-154prth{border-collapse:collapse;border-spacing:0;width:100%;text-align:left;}.css-154prth td,.css-154prth th{min-width:5rem;padding:0.5rem 1rem;vertical-align:top;}.css-154prth tbody{border-bottom:1px solid var(--primary-text-color);border-top:1px solid var(--primary-text-color);}.css-154prth tbody tr:nth-of-type(even){background:var(--primary-background-color);}.css-154prth tbody tr:nth-of-type(odd){background:var(--primary-hover-color);}.dark-mode .css-154prth tbody tr:nth-of-type(odd){background:var(--primary-contrast-color);}</style><table class="css-154prth"><thead><tr><th width="150"><p><strong>Term</strong></p></th><th><p><strong>Definition</strong></p></th></tr></thead><tbody><tr><td><p><strong>Web transactions</strong></p></td><td><p><strong>Web transactions</strong> are asset requests (or user hits) to your site. With frameworks, this is often handled by an MVC dispatching mechanism.</p></td></tr><tr><td><p><strong>Metrics</strong></p></td><td><p><strong>Metrics</strong> are named entities that report timing information. New Relic uses these metrics to generate charts and pages, such as the <a href="/docs/apm/applications-menu/monitoring/apm-overview-page/">APM <strong>Summary</strong> page</a>. For example, New Relic instruments calls to MySQL and generate metrics called <code>Database/select</code> or <code>Database/update</code> whenever a user selects or updates data.</p><p>Metrics only contain timing data.</p></td></tr><tr><td><p><strong>Transaction traces</strong></p></td><td><p>During every harvest period, New Relic records the slowest web transaction that falls below a user-defined threshold. This is a <strong>transaction trace</strong>.</p><p>It has more detail than simple metrics. If enabled, it will include a detailed call graph of exactly what functions were called and how long they took. For slow query statements, it obfuscates all data in the call.</p></td></tr></tbody></table></div><h2 id="dev" style="position:relative">Name transactions <button type="button" name="copy header link" class="css-21sua1 e1daml4q1"><a href="#dev" aria-label="dev permalink" class="anchor after"><svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></button></h2><p>How you name your web transactions will affect the quality of the user experience.</p><style data-emotion="css wc8ph0">.css-wc8ph0{padding:1.25rem;border-radius:0.25rem;border:1px solid;border-left-width:6px;color:var(--primary-text-color);border-color:var(--attention-notification-warning);background:var(--callout-important-background-color);}.css-wc8ph0:not(:last-child){margin-bottom:var(--block-element-spacing);}</style><div class="css-wc8ph0"><style data-emotion="css 1xoslel">.css-1xoslel{font-size:0.75rem!important;text-transform:uppercase;margin-top:0!important;color:var(--attention-notification-warning);}</style><h4 class="css-1xoslel">Important</h4><p>Do not use brackets <code>[suffix]</code> at the end of your transaction name. New Relic automatically strips brackets from the name. Instead, use parentheses <code>(suffix)</code> or other symbols if needed.</p></div><p><strong>Examples:</strong></p><p>If you have a blog-style framework, you would name the various transactions based on the user activity: <code>display</code>, <code>edit</code>, <code>login</code>, etc.</p><p>If you use an MVC architecture, then an appropriate naming convention is <code>controller/action</code>. Do <strong>not</strong> include any request-specific data in the transaction name. For example, using the actual request URL leads to <a href="/docs/features/metric-grouping-issues/">metric grouping issues</a>.</p><div class="css-1auewn4"><table class="css-154prth"><thead><tr><th width="150"><p><strong>Platform</strong></p></th><th><p><strong>Transaction naming example</strong></p></th></tr></thead><tbody><tr><td><p><strong>Drupal 7</strong></p></td><td><p>The dispatching is done in <code>menu_execute_active_handler()</code>. This calls <code>call_user_func_array()</code>, with the first argument being the name of the action. That is what to set as the web transaction name.</p></td></tr><tr><td><p><strong>CakePHP 1.3</strong></p></td><td><p>CakePHP has a <code>Dispatcher</code> class with an <code>_invoke</code> method. This calls the appropriate controller class with a given action, and the transaction is named <code>controller/action</code> where <code>controller</code> is the name of the controller class.</p></td></tr></tbody></table></div><p>At the point where you want to route code to a specific controller and action (if you are using MVC) or to an action (if you are not using MVC), insert code similar to this:</p><p><strong>Controller and action</strong> (when using MVC):</p><div class="css-1r12iee"><style data-emotion="css zjb7k1">.css-zjb7k1{background:var(--code-console-background-main);border-radius:4px;}.css-zjb7k1 a{color:var(--system-text-primary-dark);}</style><div class="css-zjb7k1"><style data-emotion="css 1f2e4yf">.css-1f2e4yf{max-height:26em;overflow:auto;}</style><div class="codeblock css-1f2e4yf"><style data-emotion="css 1rrd9av">.css-1rrd9av{color:var(--code-console-text-primary);font-family:var(--code-font);font-size:0.75rem;display:block;overflow:auto;white-space:pre;word-spacing:normal;word-break:normal;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;text-shadow:none;padding:1rem;}.css-1rrd9av .namespace{opacity:0.7;}.css-1rrd9av .token.plain:empty{display:inline-block;}.css-1rrd9av .token.comment,.css-1rrd9av .token.prolog,.css-1rrd9av .token.doctype,.css-1rrd9av .token.cdata{color:var(--color-comment);}.css-1rrd9av .token.tag,.css-1rrd9av .token.class-name{color:var(--code-query-syntax-keyword);}.css-1rrd9av .token.function{color:var(--code-query-syntax-function);}.css-1rrd9av .token.punctuation,.css-1rrd9av .token.operator,.css-1rrd9av .token.keyword,.css-1rrd9av .token.property,.css-1rrd9av .token.entity,.css-1rrd9av .token.atrule,.css-1rrd9av .token.attr-value,.css-1rrd9av .token.url{color:var(--code-query-syntax-operator);}.css-1rrd9av .token.regex,.css-1rrd9av .token.important,.css-1rrd9av .token.variable{color:var(--code-query-syntax-regex);}.css-1rrd9av .token.selector,.css-1rrd9av .token.attr-name,.css-1rrd9av .token.string,.css-1rrd9av .token.char,.css-1rrd9av .token.builtin,.css-1rrd9av .token.inserted{color:var(--code-query-syntax-string);}.css-1rrd9av .token.property,.css-1rrd9av .token.boolean,.css-1rrd9av .token.constant,.css-1rrd9av .token.symbol,.css-1rrd9av .token.deleted,.css-1rrd9av .token.number{color:var(--code-query-syntax-numeric);}.css-1rrd9av .token.important,.css-1rrd9av .token.bold{font-weight:bold;}.css-1rrd9av .token.italic{font-style:italic;}.css-1rrd9av .token.entity{cursor:help;}</style><pre class="css-1rrd9av" data-language="php"><style data-emotion="css ebgyu1">.css-ebgyu1{width:100%;padding:0;background:none;}.css-ebgyu1 var,.css-ebgyu1 mark{font-size:inherit;}.css-ebgyu1 var{background:var(--color-current-line);color:inherit;}.css-ebgyu1 a:hover var{background:var(--color-selection);}.css-ebgyu1 mark .token{color:var(--color-black)!important;}</style><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token function">extension_loaded</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token string single-quoted-string">'newrelic'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token plain"> </span><span class="token function">newrelic_name_transaction</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token variable">$controller</span><span class="token plain"> </span><span class="token operator">.</span><span class="token plain"> </span><span class="token string single-quoted-string">'/'</span><span class="token plain"> </span><span class="token operator">.</span><span class="token plain"> </span><span class="token variable">$action</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token plain"></span><span class="token punctuation">}</span></div></div></code></pre></div><style data-emotion="css 1jc93v0">.css-1jc93v0{color:var(--color-comment);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--color-background);border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:0 1rem;font-size:0.75rem;}</style><div class="css-1jc93v0"><style data-emotion="css o1p83e">.css-o1p83e{font-family:var(--code-font);white-space:nowrap;overflow:hidden;padding-right:0.5rem;}</style><div class="css-o1p83e"></div><style data-emotion="css 1lew2i0">.css-1lew2i0{white-space:nowrap;color:var(--system-text-primary-dark);}</style><style data-emotion="css 1ikc4qe">.css-1ikc4qe{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--link-color);background:transparent;font-size:0.75rem;white-space:nowrap;color:var(--system-text-primary-dark);}</style><button type="button" class="css-1ikc4qe e132irl20"><style data-emotion="css u7ytkp">.css-u7ytkp{margin-right:0.5rem;}</style><style data-emotion="css 1bnfg05">.css-1bnfg05{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-right:0.5rem;}</style><style data-emotion="css 668d8b">.css-668d8b{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-right:0.5rem;}</style><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div><p><strong>Action only</strong> (not using MVC):</p><div class="css-1r12iee"><div class="css-zjb7k1"><div class="codeblock css-1f2e4yf"><pre class="css-1rrd9av" data-language="php"><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token function">extension_loaded</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token string single-quoted-string">'newrelic'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token plain"> </span><span class="token function">newrelic_name_transaction</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token variable">$action</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token plain"></span><span class="token punctuation">}</span></div></div></code></pre></div><div class="css-1jc93v0"><div class="css-o1p83e"></div><button type="button" class="css-1ikc4qe e132irl20"><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div><h2 id="page-load-timing" style="position:relative">Insert the JavaScript header and footer <button type="button" name="copy header link" class="css-21sua1 e1daml4q1"><a href="#page-load-timing" aria-label="page load timing permalink" class="anchor after"><svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></button></h2><p>For page load timing (sometimes referred to as real user monitoring or RUM), insert the JavaScript header and footer. This allows you to monitor the end users' experience of the generated page.</p><ul><li>Recommendation: If your framework has a central function that generates all page headers and footers, install the JavaScript code here.</li><li>For frameworks that are template-driven, insert these in your header and footer templates.</li></ul><style data-emotion="css 10m5lzu">.css-10m5lzu >*:not(:last-child){margin-bottom:0.5rem;}.css-10m5lzu:not(:last-child){margin-bottom:var(--block-element-spacing);}</style><div class="css-10m5lzu"><style data-emotion="css 1iqeurl">.css-1iqeurl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-radius:3px;border:1px solid var(--border-color);box-shadow:var(--shadow-1);}.dark-mode .css-1iqeurl{box-shadow:var(--shadow-2);}</style><div class="css-1iqeurl"><style data-emotion="css 1opn34h">.css-1opn34h{--color-transition-duration:0.3s;--color-transition-easing:ease-out;cursor:pointer;padding:0.75rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:background var(--color-transition-duration) var(--color-transition-easing);transition:background var(--color-transition-duration) var(--color-transition-easing);border:none;background:transparent;}.css-1opn34h code{-webkit-transition:background var(--color-transition-duration) var(--color-transition-easing);transition:background var(--color-transition-duration) var(--color-transition-easing);}.css-1opn34h:hover,.css-1opn34h:focus{background:var(--primary-hover-color);outline:none;}.css-1opn34h:hover .anchor svg,.css-1opn34h:focus .anchor svg{opacity:1;}</style><button type="button" class="css-1opn34h"><style data-emotion="css 1d1yxde">.css-1d1yxde{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;font-size:1rem;margin-top:0;margin-bottom:0;text-align:left;}</style><h5 id="page-generator" class="css-1d1yxde"><span>Insert in a page generator function</span><style data-emotion="css vk52vh">.css-vk52vh{margin-left:0.5rem;position:relative;}</style><a href="#page-generator" class="anchor css-vk52vh"><style data-emotion="css 1o9hz83">.css-1o9hz83{display:block;color:inherit!important;}</style><style data-emotion="css si0spv">.css-si0spv{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;color:inherit!important;}</style><style data-emotion="css 1rt4bl8">.css-1rt4bl8{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;color:inherit!important;}</style><svg viewBox="0 0 24 24" class="css-1rt4bl8" xmlns="http://www.w3.org/2000/svg"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></h5><style data-emotion="css omjdkx">.css-omjdkx{margin-left:auto;-webkit-transition:-webkit-transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);transition:transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);color:var(--secondary-text-color);}</style><style data-emotion="css 1ucc14q">.css-1ucc14q{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:auto;-webkit-transition:-webkit-transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);transition:transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);color:var(--secondary-text-color);}</style><style data-emotion="css pbzsfr">.css-pbzsfr{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:auto;-webkit-transition:-webkit-transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);transition:transform 0.6s ease,color var(--color-transition-duration) var(--color-transition-easing);color:var(--secondary-text-color);}</style><svg viewBox="0 0 24 24" class="css-pbzsfr" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button><style data-emotion="css d3v9zr">.css-d3v9zr{overflow:hidden;}</style><div style="height:0" class="css-d3v9zr"><style data-emotion="css 1ofyns">.css-1ofyns{border-top:1px solid var(--border-color);padding:1rem;}</style><div aria-hidden="true" class="css-1ofyns"><p>The header <strong>must</strong> be inserted as close to the top of the generated page as possible. Immediately after the <code><meta http-equiv....></code> tag is the ideal place. It should precede <strong>any</strong> JavaScript, CSS stylesheets or other linked or embedded content.</p><div class="css-1r12iee"><div class="css-zjb7k1"><div class="codeblock css-1f2e4yf"><pre class="css-1rrd9av" data-language="php"><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token function">extension_loaded</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token string single-quoted-string">'newrelic'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token plain"> </span><span class="token keyword">echo</span><span class="token plain"> </span><span class="token function">newrelic_get_browser_timing_header</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token plain"></span><span class="token punctuation">}</span></div></div></code></pre></div><div class="css-1jc93v0"><div class="css-o1p83e"></div><button type="button" class="css-1ikc4qe e132irl20"><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div><p><code>newrelic_get_browser_timing_header()</code> takes an optional <code>bool</code> argument that defaults to <strong>true</strong>. It indicates whether or not the returned string should be enclosed by script tags.</p><p>Recommendation: Insert the footer immediately before the <code></body></code> page close tag as the very last thing on the generated page.</p><div class="css-1r12iee"><div class="css-zjb7k1"><div class="codeblock css-1f2e4yf"><pre class="css-1rrd9av" data-language="php"><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token function">extension_loaded</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token string single-quoted-string">'newrelic'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token plain"> </span><span class="token keyword">echo</span><span class="token plain"> </span><span class="token function">newrelic_get_browser_timing_footer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token plain"></span><span class="token punctuation">}</span></div></div></code></pre></div><div class="css-1jc93v0"><div class="css-o1p83e"></div><button type="button" class="css-1ikc4qe e132irl20"><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div><p><code>newrelic_get_browser_timing_footer()</code> takes an optional <code>bool</code> that defaults to <strong>true</strong>. It indicates whether or not the returned string should be enclosed by script tags.</p></div></div></div><div class="css-1iqeurl"><button type="button" class="css-1opn34h"><h5 id="template" class="css-1d1yxde"><span>Insert in templates</span><a href="#template" class="anchor css-vk52vh"><svg viewBox="0 0 24 24" class="css-1rt4bl8" xmlns="http://www.w3.org/2000/svg"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></h5><svg viewBox="0 0 24 24" class="css-pbzsfr" xmlns="http://www.w3.org/2000/svg"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div style="height:0" class="css-d3v9zr"><div aria-hidden="true" class="css-1ofyns"><p>Use this header template as an example:</p><div class="css-1r12iee"><div class="css-zjb7k1"><div class="codeblock css-1f2e4yf"><pre class="css-1rrd9av" data-language="php"><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token php language-php delimiter important"><?php</span><span class="token php language-php"> </span><span class="token php language-php keyword">if</span><span class="token php language-php"> </span><span class="token php language-php punctuation">(</span><span class="token php language-php function">extension_loaded</span><span class="token php language-php"> </span><span class="token php language-php punctuation">(</span><span class="token php language-php string single-quoted-string">'newrelic'</span><span class="token php language-php punctuation">)</span><span class="token php language-php punctuation">)</span><span class="token php language-php"> </span><span class="token php language-php punctuation">{</span><span class="token php language-php"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token php language-php"> </span><span class="token php language-php keyword">echo</span><span class="token php language-php"> </span><span class="token php language-php function">newrelic_get_browser_timing_header</span><span class="token php language-php punctuation">(</span><span class="token php language-php punctuation">)</span><span class="token php language-php punctuation">;</span><span class="token php language-php"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token php language-php"></span><span class="token php language-php punctuation">}</span><span class="token php language-php"> </span><span class="token php language-php delimiter important">?></span></div></div></code></pre></div><div class="css-1jc93v0"><div class="css-o1p83e"></div><button type="button" class="css-1ikc4qe e132irl20"><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div><p>Use this footer template as an example:</p><div class="css-1r12iee"><div class="css-zjb7k1"><div class="codeblock css-1f2e4yf"><pre class="css-1rrd9av" data-language="php"><code class="css-ebgyu1"><div class="token-line" name="line-1"><div class="css-0"><span class="token php language-php delimiter important"><?php</span><span class="token php language-php"> </span><span class="token php language-php keyword">if</span><span class="token php language-php"> </span><span class="token php language-php punctuation">(</span><span class="token php language-php function">extension_loaded</span><span class="token php language-php"> </span><span class="token php language-php punctuation">(</span><span class="token php language-php string single-quoted-string">'newrelic'</span><span class="token php language-php punctuation">)</span><span class="token php language-php punctuation">)</span><span class="token php language-php"> </span><span class="token php language-php punctuation">{</span><span class="token php language-php"></span></div></div><div class="token-line" name="line-2"><div class="css-0"><span class="token php language-php"> </span><span class="token php language-php keyword">echo</span><span class="token php language-php"> </span><span class="token php language-php function">newrelic_get_browser_timing_footer</span><span class="token php language-php punctuation">(</span><span class="token php language-php punctuation">)</span><span class="token php language-php punctuation">;</span><span class="token php language-php"></span></div></div><div class="token-line" name="line-3"><div class="css-0"><span class="token php language-php"></span><span class="token php language-php punctuation">}</span><span class="token php language-php"> </span><span class="token php language-php delimiter important">?></span></div></div></code></pre></div><div class="css-1jc93v0"><div class="css-o1p83e"></div><button type="button" class="css-1ikc4qe e132irl20"><svg viewBox="0 0 24 24" class="css-668d8b" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>Copy</button></div></div></div></div></div></div></div></div> </article><style data-emotion="css ltetme">.css-ltetme{background:var(--primary-background-color);gap:0;top:calc(var(--global-header-height) + 3rem);}.css-ltetme.page-tools-transition-enter{-webkit-translate:calc(var(--sidebar-width) - 50px);-moz-translate:calc(var(--sidebar-width) - 50px);-ms-translate:calc(var(--sidebar-width) - 50px);translate:calc(var(--sidebar-width) - 50px);}.css-ltetme.page-tools-transition-enter-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ltetme.page-tools-transition-enter-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}.css-ltetme.page-tools-transition-exit{-webkit-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-moz-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-ms-translate:calc(calc(var(--sidebar-width) - 50px) * -1);translate:calc(calc(var(--sidebar-width) - 50px) * -1);}.css-ltetme.page-tools-transition-exit-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ltetme.page-tools-transition-exit-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}@media screen and (max-width: 1240px){.css-ltetme{display:none;}}</style><style data-emotion="css ybjz1f">.css-ybjz1f{position:-webkit-sticky;position:sticky;top:calc(var(--global-header-height) + var(--site-content-padding));-webkit-align-self:start;-ms-flex-item-align:start;align-self:start;grid-area:page-tools;max-height:calc( 100vh - (var(--global-header-height) + var(--site-content-padding) * 2) );overflow-y:auto;gap:1rem;background:var(--primary-background-color);gap:0;top:calc(var(--global-header-height) + 3rem);}.css-ybjz1f.page-tools-transition-enter{-webkit-translate:calc(var(--sidebar-width) - 50px);-moz-translate:calc(var(--sidebar-width) - 50px);-ms-translate:calc(var(--sidebar-width) - 50px);translate:calc(var(--sidebar-width) - 50px);}.css-ybjz1f.page-tools-transition-enter-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ybjz1f.page-tools-transition-enter-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}.css-ybjz1f.page-tools-transition-exit{-webkit-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-moz-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-ms-translate:calc(calc(var(--sidebar-width) - 50px) * -1);translate:calc(calc(var(--sidebar-width) - 50px) * -1);}.css-ybjz1f.page-tools-transition-exit-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-ybjz1f.page-tools-transition-exit-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}@media screen and (max-width: 1240px){.css-ybjz1f{display:none;}}</style><style data-emotion="css vbecf5">.css-vbecf5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:calc(var(--global-header-height) + var(--site-content-padding));-webkit-align-self:start;-ms-flex-item-align:start;align-self:start;grid-area:page-tools;max-height:calc( 100vh - (var(--global-header-height) + var(--site-content-padding) * 2) );overflow-y:auto;gap:1rem;background:var(--primary-background-color);gap:0;top:calc(var(--global-header-height) + 3rem);}.css-vbecf5.page-tools-transition-enter{-webkit-translate:calc(var(--sidebar-width) - 50px);-moz-translate:calc(var(--sidebar-width) - 50px);-ms-translate:calc(var(--sidebar-width) - 50px);translate:calc(var(--sidebar-width) - 50px);}.css-vbecf5.page-tools-transition-enter-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-vbecf5.page-tools-transition-enter-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}.css-vbecf5.page-tools-transition-exit{-webkit-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-moz-translate:calc(calc(var(--sidebar-width) - 50px) * -1);-ms-translate:calc(calc(var(--sidebar-width) - 50px) * -1);translate:calc(calc(var(--sidebar-width) - 50px) * -1);}.css-vbecf5.page-tools-transition-exit-active{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;-webkit-transition:300ms translate ease;transition:300ms translate ease;}.css-vbecf5.page-tools-transition-exit-done{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}@media screen and (max-width: 1240px){.css-vbecf5{display:none;}}</style><aside data-swiftype-index="false" class="css-vbecf5"><style data-emotion="css 8z3xso">.css-8z3xso{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-height:150px;border:none;border-radius:0;margin-bottom:0;background:var(--system-text-primary-dark);border-bottom:1px solid var(--system-text-disabled-dark);}.dark-mode .css-8z3xso.css-8z3xso{background:var(--erno-black);border-bottom:1px solid var(--system-background-hover-dark);}.css-8z3xso h4{font-weight:500;}</style><style data-emotion="css eew8yv">.css-eew8yv{padding:1rem;border:1px solid var(--border-color);border-radius:4px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-height:150px;border:none;border-radius:0;margin-bottom:0;background:var(--system-text-primary-dark);border-bottom:1px solid var(--system-text-disabled-dark);}.dark-mode .css-eew8yv.css-eew8yv{background:var(--erno-black);border-bottom:1px solid var(--system-background-hover-dark);}.css-eew8yv h4{font-weight:500;}</style><section class="css-eew8yv"><style data-emotion="css 2kpuba">.css-2kpuba{margin-top:0!important;margin-bottom:0.5rem!important;font-size:1rem;}</style><h4 class="css-2kpuba">On this page</h4><style data-emotion="css 3siliq">.css-3siliq{margin-left:-1rem;margin-right:-1rem;overflow-y:auto;}</style><nav class="css-3siliq"><style data-emotion="css v5al3">.css-v5al3{list-style:none;padding:0;margin:0;}</style><ul class="css-v5al3"><style data-emotion="css xxxtfh">.css-xxxtfh{margin:5px 0 0;line-height:1.33rem;}</style><li class="css-xxxtfh"><style data-emotion="css bg51d6">.css-bg51d6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:0.875rem;padding:0.5rem 1rem 0.5rem 1.25rem;color:var(--primary-text-color);-webkit-transition:background-color 0.2s ease-out,color 0.2s ease-out;transition:background-color 0.2s ease-out,color 0.2s ease-out;-webkit-text-decoration:none;text-decoration:none;position:relative;font-weight:400;}.css-bg51d6:hover{color:#0E74DF;}.css-bg51d6.active{background:#0E74DF;color:var(--system-background-app-light);font-weight:500;}</style><a href="#frameworks" class="active css-bg51d6">Help your users</a></li><li class="css-xxxtfh"><a href="#terminology" class="css-bg51d6">Terminology</a></li><li class="css-xxxtfh"><a href="#dev" class="css-bg51d6">Name transactions</a></li><li class="css-xxxtfh"><a href="#page-load-timing" class="css-bg51d6">Insert the JavaScript header and footer</a></li></ul></nav></section><style data-emotion="css fvou7c">.css-fvou7c{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border:none;border-radius:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-width:320px;margin:0;background:var(--system-text-primary-dark);gap:1rem;}.dark-mode .css-fvou7c.css-fvou7c{background:var(--erno-black);}.css-fvou7c p{color:var(--primary-text-color);margin:0;font-size:14px;font-weight:400;}.css-fvou7c input::-webkit-input-placeholder{color:var(--primary-text-color);}.css-fvou7c input::-moz-placeholder{color:var(--primary-text-color);}.css-fvou7c input:-ms-input-placeholder{color:var(--primary-text-color);}.css-fvou7c input::placeholder{color:var(--primary-text-color);}.css-fvou7c h5,.css-fvou7c h4{color:var(--primary-text-color);}</style><style data-emotion="css 1n6iwi7">.css-1n6iwi7{padding:1rem;border:1px solid var(--border-color);border-radius:4px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border:none;border-radius:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-width:320px;margin:0;background:var(--system-text-primary-dark);gap:1rem;}.dark-mode .css-1n6iwi7.css-1n6iwi7{background:var(--erno-black);}.css-1n6iwi7 p{color:var(--primary-text-color);margin:0;font-size:14px;font-weight:400;}.css-1n6iwi7 input::-webkit-input-placeholder{color:var(--primary-text-color);}.css-1n6iwi7 input::-moz-placeholder{color:var(--primary-text-color);}.css-1n6iwi7 input:-ms-input-placeholder{color:var(--primary-text-color);}.css-1n6iwi7 input::placeholder{color:var(--primary-text-color);}.css-1n6iwi7 h5,.css-1n6iwi7 h4{color:var(--primary-text-color);}</style><section class="css-1n6iwi7"><style data-emotion="css 19kzpzf">.css-19kzpzf{margin-bottom:0;text-align:center;}</style><p class="css-19kzpzf">Was this doc helpful?</p><style data-emotion="css 1tyiwo2">.css-1tyiwo2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:space-around;-ms-flex-pack:space-around;-webkit-justify-content:space-around;justify-content:space-around;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}.css-1tyiwo2 button{width:45%;font-size:0.875rem;font-weight:400;border:none;border-radius:3px;}@supports not (gap: 0.5rem){.css-1tyiwo2 a:first-of-type{margin-right:0.25rem;}}</style><div class="css-1tyiwo2"><style data-emotion="css 1sofcz3">.css-1sofcz3{height:3rem;margin-bottom:0.5rem;color:var(--primary-text-color);background:var(--system-text-secondary-dark);}.dark-mode .css-1sofcz3{background:var(--primary-hover-color);}</style><style data-emotion="css 13aoo89">.css-13aoo89{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);border:1px solid var(--button-outline-color);background-color:transparent;height:3rem;margin-bottom:0.5rem;color:var(--primary-text-color);background:var(--system-text-secondary-dark);}.dark-mode .css-13aoo89{background:var(--primary-hover-color);}</style><button class="css-13aoo89 e132irl20"><style data-emotion="css 6axxab">.css-6axxab{margin-right:0.5rem;font-size:14px;}</style><div class="css-6axxab">😁</div>Yes</button><style data-emotion="css s7q2p6">.css-s7q2p6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);border:1px solid var(--button-outline-color);background-color:transparent;font-size:0.75rem;height:3rem;margin-bottom:0.5rem;color:var(--primary-text-color);background:var(--system-text-secondary-dark);}.dark-mode .css-s7q2p6{background:var(--primary-hover-color);}</style><button class="css-s7q2p6 e132irl20"><div class="css-6axxab">🙁</div>No</button></div></section><style data-emotion="css ym2txp">.css-ym2txp{margin-top:1rem;background:var(--system-text-primary-dark);}.dark-mode .css-ym2txp.css-ym2txp{background:var(--erno-black);}.css-ym2txp a{color:var(--primary-system-text);font-size:1rem;border-radius:3px;border:none;}</style><style data-emotion="css clsnrz">.css-clsnrz{margin:0;padding:0;border:none;margin-top:1rem;background:var(--system-text-primary-dark);}.dark-mode .css-clsnrz.css-clsnrz{background:var(--erno-black);}.css-clsnrz a{color:var(--primary-system-text);font-size:1rem;border-radius:3px;border:none;}</style><style data-emotion="css 1itm6ta">.css-1itm6ta{padding:1rem;border:1px solid var(--border-color);border-radius:4px;margin:0;padding:0;border:none;margin-top:1rem;background:var(--system-text-primary-dark);}.dark-mode .css-1itm6ta.css-1itm6ta{background:var(--erno-black);}.css-1itm6ta a{color:var(--primary-system-text);font-size:1rem;border-radius:3px;border:none;}</style><section class="css-1itm6ta"><style data-emotion="css 1svhly8">.css-1svhly8{width:100%;height:3rem;}.css-1svhly8:hover{color:var(--secondary-text-color);}</style><style data-emotion="css mgwsn2">.css-mgwsn2{font-size:1rem;width:100%;height:3rem;}.css-mgwsn2:hover{color:var(--secondary-text-color);}</style><style data-emotion="css sbq861">.css-sbq861{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:400;border-radius:3px;font-family:var(--primary-font-family);line-height:1;cursor:pointer;border:1px solid transparent;transition-duration:0.15s;transition-property:color,background;transition-timing-function:ease-out;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;color:var(--button-outline-color);border:1px solid var(--button-outline-color);background-color:transparent;font-size:1rem;width:100%;height:3rem;}.css-sbq861:hover{color:var(--secondary-text-color);}</style><a variant="outline" class="css-sbq861 e132irl20" href="https://github.com/newrelic/docs-website/blob/develop/src/content/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic.mdx" target="_blank" rel="noopener noreferrer"><style data-emotion="css 1twd3r0">.css-1twd3r0{font-size:1rem;margin-right:0.5rem;}</style><style data-emotion="css b2au3j">.css-b2au3j{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;font-size:1rem;margin-right:0.5rem;}</style><style data-emotion="css tga41j">.css-tga41j{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;font-size:1rem;margin-right:0.5rem;}</style><svg viewBox="0 0 24 24" class="css-tga41j" xmlns="http://www.w3.org/2000/svg"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg>Edit this doc</a></section></aside></div></main><style data-emotion="css 17yn7q9">.css-17yn7q9{height:80px;}</style><style data-emotion="css 60p6r8">.css-60p6r8{grid-area:footer;height:80px;}</style><style data-emotion="css 1bkm287">.css-1bkm287{color:var(--system-text-primary-dark);background-color:var(--system-text-primary-light);z-index:1;grid-area:footer;height:80px;}.css-1bkm287 a{color:var(--system-text-primary-dark);border-color:var(--system-text-primary-dark);}</style><footer data-swiftype-index="false" class="css-1bkm287"><div><style data-emotion="css 1bls6ih">.css-1bls6ih{font-size:0.75rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;display:grid;grid-template-columns:auto auto;grid-template-areas:'copyright legal';padding:0.5rem var(--site-content-padding);max-width:var(--site-max-width);margin:0 auto;}@media screen and (max-width: 760px){.css-1bls6ih{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center;grid-template-columns:auto;grid-gap:0.5rem;grid-template-areas:'legal' 'copyright';}}</style><div class="css-1bls6ih"><style data-emotion="css exb11e">.css-exb11e{grid-area:copyright;text-transform:uppercase;font-size:0.5rem;letter-spacing:0.1rem;}</style><div class="css-exb11e">Copyright © 2024 New Relic Inc.</div><style data-emotion="css isgvpc">.css-isgvpc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}</style><div class="css-isgvpc"><style data-emotion="css 1ot83iv">.css-1ot83iv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;grid-area:legal;max-width:32rem;}.css-1ot83iv a{margin-left:0.75rem;white-space:nowrap;}</style><div class="css-1ot83iv"><a href="https://newrelic.com/about/careers" target="_blank" rel="noopener">Careers</a><a href="https://newrelic.com/termsandconditions/terms" target="_blank" rel="noopener">Terms of Service</a><a href="https://newrelic.com/termsandconditions/dmca" target="_blank" rel="noopener">DMCA Policy</a><a href="https://newrelic.com/termsandconditions/services-notices" target="_blank" rel="noopener">Privacy Notice</a><a href="https://newrelic.com/termsandconditions/cookie-policy" target="_blank" rel="noopener">Cookie Policy</a><a href="https://newrelic.com/termsandconditions/uk-slavery-act" target="_blank" rel="noopener">UK Slavery Act</a></div><style data-emotion="css 6pxg7x">.css-6pxg7x p{font-size:0.625rem;}</style><div class=" css-6pxg7x"><p>This site is protected by reCAPTCHA and the Google<!-- --> <a href="https://policies.google.com/privacy">Privacy Policy</a> and<!-- --> <a href="https://policies.google.com/terms">Terms of Service</a> apply.</p></div></div></div></div></footer></div></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><div id="portal"></div><script type="text/javascript">_linkedin_partner_id = "7273"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id);</script><script type="text/javascript">(function (l) { if (!l) { window.lintrk = function (a, b) { window.lintrk.q.push([a, b]); }; window.lintrk.q = []; } var s = document.getElementsByTagName('script')[0]; var b = document.createElement('script'); b.type = 'text/javascript'; b.async = true; b.src = 'https://snap.licdn.com/li.lms-analytics/insight.min.js'; s.parentNode.insertBefore(b, s); })(window.lintrk)</script><noscript><img height="1" width="1" style={{ display: 'none' }} alt="" src="https://px.ads.linkedin.com/collect/?pid=7273&fmt=gif" /></noscript><script type="text/javascript">(function() { var didInit = false; function initMunchkin() { if(didInit === false) { didInit = true; Munchkin.init('341-XKP-310'); } } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//munchkin.marketo.net/munchkin.js'; s.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { initMunchkin(); } }; s.onload = initMunchkin; document.getElementsByTagName('head')[0].appendChild(s); })();</script><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/docs/apm/agents/php-agent/frameworks-libraries/php-frameworks-integrate-support-new-relic/";window.___webpackCompilationHash="1fb78ce579b650c7b9a4";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-5300cc03c6ae4711270f.js"],"app":["/app-8d4352653534549fc039.js"],"tsub-middleware":["/tsub-middleware-bda23245e66d5b66af16.js"],"ajs-destination":["/ajs-destination-c2b936bc82d80cf94db0.js"],"legacyVideos":["/legacyVideos-e24272fda061c238b844.js"],"schemaFilter":["/schemaFilter-8fa556bc864b3f95a988.js"],"remoteMiddleware":["/remoteMiddleware-479fd3239a2a1ffa8f10.js"],"auto-track":["/auto-track-432c978f8b3c420c8ad4.js"],"middleware":[],"queryString":["/queryString-3945abf3d1e877fc20d6.js"],"component---node-modules-newrelic-gatsby-theme-newrelic-src-pages-404-js":["/component---node-modules-newrelic-gatsby-theme-newrelic-src-pages-404-js-4cc74266e9654d448236.js"],"component---src-pages-attribute-dictionary-js":["/component---src-pages-attribute-dictionary-js-1beaa6cdfd641f2dd8cb.js"],"component---src-pages-eol-js":["/component---src-pages-eol-js-40aa4adef240c2f64213.js"],"component---src-pages-index-js":["/component---src-pages-index-js-b86376f1987af3ab95ef.js"],"component---src-pages-install-install-config-agent-name-js":["/component---src-pages-install-install-config-agent-name-js-14d9617eec4f45c6c918.js"],"component---src-pages-search-results-js":["/component---src-pages-search-results-js-c053f9be339241209a1c.js"],"component---src-pages-whats-new-js":["/component---src-pages-whats-new-js-4e557a9d4fbe2c341305.js"],"component---src-templates-doc-page-js":["/component---src-templates-doc-page-js-34c8f9c7e7701b4230e6.js"],"component---src-templates-eol-announcement-js":["/component---src-templates-eol-announcement-js-420093ebb0d98fbc52cc.js"],"component---src-templates-release-note-js":["/component---src-templates-release-note-js-a4c7a39d344d4ad374e6.js"],"component---src-templates-release-note-landing-page-js":["/component---src-templates-release-note-landing-page-js-b6291442a0f41e23ffca.js"],"component---src-templates-whats-new-js":["/component---src-templates-whats-new-js-9f8987f2d0127e312725.js"]};/*]]>*/</script><script src="/polyfill-5300cc03c6ae4711270f.js" nomodule=""></script><script src="/app-8d4352653534549fc039.js" async=""></script><script src="/ce450489-a548078c5fc415fa6875.js" async=""></script><script src="/94b0b573-b589958faca19a5842a8.js" async=""></script><script src="/29107295-65bb492ed533560b0ecf.js" async=""></script><script src="/framework-c5aaa494328a0f0f8a7b.js" async=""></script><script src="/webpack-runtime-ac1bf67535f9a3c4ad53.js" async=""></script></body></html>