@newrelic/newrelic-netlify-plugin

New Relic Netlify Plugin

Usage no npm install needed!

<script type="module">
  import newrelicNewrelicNetlifyPlugin from 'https://cdn.skypack.dev/@newrelic/newrelic-netlify-plugin';
</script>

README

New Relic Experimental header

New Relic Netlify Plugin GitHub GitHub issues GitHub pull requests GitHub last commit npm (scoped) npm npms.io (quality) Libraries.io dependency status for latest release, scoped npm package Lines of code

Monitor your Netlify build process and Jamstack application performance with New Relic, without the need for lengthy manual set up.

The New Relic Netlify Plugin:

  • Notifies New Relic on Netlify build events including: Pre Build, Post Build, Sucess, and Failure.
  • Installs the browser agent across your static pages
  • Adds a release version to each deployment for easier monitoring and debugging

Installation

For detailed installation instructions see "Jumpstart your Jamstack monitoring with the New Relic Netlify plugin and quickstart"

UI Installation

UI installation is the quickest way to start using the plugin, and does not require any modifications to your project's code.

File-based Installation

Alternatively, to install with file-based installation, add the following lines to your netlify.toml files:

package = "@newrelic/newrelic-netlify-plugin"

  [plugins.inputs]
    newrelicAccountId = "123456"
    newrelicLicenseKey = "12345678901234567890"
    newrelicBrowserLicenseKey = "ABCD-0987654321"
    newrelicAppId = "123456789"
    enableBrowserMonitoring = true

Replace the values for newrelicAccountId, newrelicLicenseKey, newrelicBrowserLicenseKey, and newrelicAppId with your New Relic Account ID, the ingest and browser ingest license key you, and your New Relic Browser App ID.

Install the Netlify quickstart

To get the most out of your Netlify integration you should also install the New Relic Netlify quickstart. You can find more information on the quickstart page on New Relic I/O.

Settings

The plugin allows for customisation of the following settings via environment variables or your netlify.toml.

netlify.toml key Environment variable name Description Required for Default value
failBuildOnPluginError FAIL_BUILD_ON_PLUGIN_ERROR Fail the whole build if the plugin has an error true
newrelicAccountId NEWRELIC_ACCOUNT_ID New Relic Account ID event tracking & browser monitoring undefined
newrelicLicenseKey NEWRELIC_INGEST_LICENSE_KEY New Relic Ingest License Key event tracking undefined
newrelicBrowserLicenseKey NEWRELIC_BROWSER_LICENSE_KEY New Relic Ingest License Key event tracking undefined
newrelicAppId NEWRELIC_APP_ID New Relic APM App ID browser monitoring undefined
recordEventsForPreviews RECORD_EVENTS_FOR_PREVIEWS Set this to true if you want to record events for deploy previews false
skipEvent.onPreBuild SKIP_PRE_BUILD_EVENT Set this to true to skip recording onPreBuild custom events false
skipEvent.onBuild SKIP_BUILD_EVENT Set this to true to skip recording onBuild custom events false
skipEvent.onPostBuild SKIP_POST_BUILD_EVENT Set this to true to skip recording onPostBuild custom events false
skipEvent.onSuccess SKIP_SUCCESS_EVENT Set this to true to skip recording onSuccess custom events false
skipEvent.onError SKIP_ERROR_EVENT Set this to true to skip recording onError custom events false
skipEvent.onEnd SKIP_END_EVENT Set this to true to skip recording onEnd custom events false
enableBrowserMonitoring ENABLE_BROWSER_MONITORING Attempt to inject the browser monitor script tag into any HTML pages false
enableBrowserMonitoringForPreviews ENABLE_BROWSER_MONITORING_FOR_PREVIEWS Set this to true if you want to enable browser monitoring for deploy previews false
distributedTracingEnabled DISTRIBUTED_TRACING_ENABLED Enable distributed tracing for browser requests true
cookiesEnabled COOKIES_ENABLED Enable cookies for browser monitoring true
htmlInjectionConcurrency HTML_INJECTION_CONCURRENCY Number of concurrently pending promises to use when injecting browser agent 5
revisionTemplate REVISION_TEMPLATE Deploy marker revision and release version id structure (EJS string) <% if(git.commits[0].message){ % ><%= git.commits[0].message.slice(0,25) % >-<% } % ><%= process.env.CONTEXT % >-<%= process.env.COMMIT_REF.slice(0, 7) % >-<%= process.env.DEPLOY_ID.slice(-6) % >-<%= process.env.BUILD_ID.slice(-6) % >

Support

The plugin is part of New Relic experimental. The project is being developed in the open and we welcome all feedback and contributions.

Please raise an issue or contact us via the New Relic Explorers Hub.

Contributing

We encourage your contributions to improve the New Relic Netlify Plugin!

Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.

If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com.

A note about vulnerabilities

As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through HackerOne.

License

The New Relic Netlify plugin is licensed under the Apache 2.0 License.