Skip to content

Latest commit

 

History

History

README.md

New Relic Plugin (Alpha)

Website: https://newrelic.com

New Relic Plugin APM

New Relic Plugin Tools

Getting Started

This plugin uses the Backstage proxy to securely communicate with New Relic's APIs.

  1. Add the following to your app-config.yaml to enable this configuration:

    proxy:
      '/newrelic/apm/api':
        target: https://api.newrelic.com/v2
        headers:
          X-Api-Key: ${NEW_RELIC_REST_API_KEY}
        allowedHeaders:
          - link

    There is some types of api key on new relic, to this use must be User type of key, In your production deployment of Backstage, you would also need to ensure that you've set the NEW_RELIC_REST_API_KEY environment variable before starting the backend.

    While working locally, you may wish to hard-code your API key in your app-config.local.yaml like this:

    # app-config.local.yaml
    proxy:
      '/newrelic/apm/api':
        headers:
          X-Api-Key: NRRA-YourActualApiKey
        allowedHeaders:
          - link

    Read more about how to find or generate this key in New Relic's Documentation.

    See if it's working by visiting the New Relic Plugin Path: /newrelic

  2. Add a dependency to your packages/app/package.json:

    # From your Backstage root directory
    yarn --cwd packages/app add @backstage-community/plugin-newrelic
  3. Add the NewRelicPage to your packages/app/src/App.tsx:

    <FlatRoutes><Route path="/newrelic" element={<NewRelicPage />} />
    </FlatRoutes>
  4. Add link to New Relic to your sidebar

    // packages/app/src/components/Root/Root.tsx
     import ExtensionIcon from '@material-ui/icons/ExtensionOutlined';
    
     ...
    
     export const Root = ({ children }: PropsWithChildren<{}>) => (
       <SidebarPage>
         <Sidebar>
           ...
           <SidebarItem icon={ExtensionIcon} to="newrelic" text="New Relic" />
           ...
         </Sidebar>
       </SidebarPage>
     );
  5. Navigate to your.domain.com/newrelic.

    At this step you must be able to see a page like that New Relic Plugin APM

Features

  • View New Relic Application Performance Monitoring (APM) data such as:
    • Application Name
    • Response Time (ms)
    • Throughput (rpm)
    • Error Rate
    • Instance Count
    • Apdex Score

Limitations

  • Currently only supports New Relic APM data

New Frontend System

Setup

If you're using feature discovery, the plugin should be automatically discovered and enabled. Otherwise, you can manually enable the plugin by adding it to your app:

// packages/app/src/App.tsx
import newrelicPlugin from '@backstage-community/plugin-newrelic/alpha';

const app = createApp({
  features: [
    // ...
    newrelicPlugin,
  ],
});

Extensions

The following extensions are available in the plugin:

  • api:newrelic
  • page:newrelic
  • nav-item:newrelic

You can also serve the plugin in isolation by running yarn start in the plugin directory. This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. It is only meant for local development, and the setup for it can be found inside the /dev directory.