-
Notifications
You must be signed in to change notification settings - Fork 546
Description
Workspace
newrelic
π Feature description
The New Relic Dashboard and APM plugins currently only support a single dashboard GUID and single application ID per entity:
Current limitation:
newrelic.com/dashboard-guid: accepts only one GUIDnewrelic.com/application-id: accepts only one application ID- Proxy supports only one New Relic account/API key
Requested features:
- Support for multiple dashboard GUIDs per entity (comma-separated or array format)
- Support for multiple APM application IDs
- Multi-account support for different environments (dev/staging/production)
Affected plugins:
- @backstage-community/plugin-newrelic-dashboard
- @backstage-community/plugin-newrelic
π€ Context
Why this is needed:
Modern microservices typically have:
- Multiple dashboards tracking different aspects (infrastructure, business metrics, security, compliance)
- Separate New Relic accounts per environment for isolation, security, and billing
- Multiple application instances across regions/clusters
Real-world example:
A service my-api has:
- Dev account dashboard:
guid-dev-123 - Staging account dashboard:
guid-staging-456 - Production account dashboard:
guid-prod-789
Currently impossible to view all three in Backstage without creating three separate entities.
βοΈ Possible Implementation
Option 1: Comma-separated values
annotations:
newrelic.com/dashboard-guid: 'guid1,guid2,guid3'
newrelic.com/application-id: 'id1,id2,id3'
Option 2: Array format
annotations:
newrelic.com/dashboard-guids:
- 'guid1'
- 'guid2'
Option 3: Environment-specific annotations (for multi-account)
annotations:
newrelic.com/dashboard-guid.dev: 'dev-guid'
newrelic.com/dashboard-guid.staging: 'staging-guid'
newrelic.com/dashboard-guid.production: 'prod-guid'
Code changes needed:
- Update getDashboardEntity() to parse and accept array of GUIDs
- Add UI component with tabs/accordion for multiple dashboards
- Support multiple proxy endpoints for different accounts
- Update isNewRelicDashboardAvailable to check any valid annotation
Technical investigation:
I inspected the plugin source at node_modules/@backstage-community/plugin-newrelic-dashboard/dist/components/NewRelicDashboard/DashboardEntityList.esm.js and confirmed getDashboardEntity() accepts only a single string value with no array parsing logic.
π Have you spent some time to check if this feature request has been raised before?
- I checked and didn't find similar issue
π’ Have you read the Code of Conduct?
- I have read the Code of Conduct
Are you willing to submit PR?
None