npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@enginuity-io/dora-metrics

v0.1.4

Published

DORA Metrics frontend plugin for Backstage

Readme

DORA Metrics Frontend Plugin for Backstage

This plugin provides a dashboard for visualizing DORA (DevOps Research and Assessment) metrics in your Backstage application. It integrates with Apache DevLake as a data source to display key DevOps performance indicators.

Note: Version 0.1.3+ includes pre-compiled TypeScript with declaration files for seamless integration with Backstage apps.

Features

  • Display key DORA metrics:
    • Deployment Frequency
    • Lead Time for Changes
    • Mean Time to Restore
    • Change Failure Rate
  • Interactive charts and visualizations
  • Performance level indicators (Elite, High, Medium, Low)
  • Time range selection for metrics analysis
  • Project selection for multi-project environments
  • Trend indicators showing improvement or decline

Prerequisites

Installation

# From your Backstage root directory
yarn add --cwd packages/app @enginuity-io/dora-metrics

Configuration

Add the following to your app-config.yaml:

doraMetrics:
  # URL to the backend API (default: /api/dora-metrics)
  backendUrl: /api/dora-metrics
  
  # Optional: Additional API path to append to backendUrl
  apiPath: ''
  
  # Optional: Frontend URL for CORS configuration
  frontendUrl: http://localhost:3000
  
  # Database configuration for backend
  database:
    connection:
      host: localhost      # DevLake database host
      port: 3306           # DevLake database port
      user: devlake        # Database user
      password: devlake    # Database password
      database: devlake    # Database name

Usage

Register the plugin in your Backstage app

Option 1: Using the new frontend plugin system (recommended)

  1. Add the plugin to your app's packages/app/src/App.tsx:
import { doraMetricsPlugin } from '@enginuity-io/dora-metrics';

// Inside your FlatRoutes component:
<Route path="/dora-metrics" element={<DoraMetricsPage />} />

// Add to your plugins list
const app = createApp({
  apis,
  plugins: [
    // ... other plugins
    doraMetricsPlugin,
  ],
});
  1. Add a link to the sidebar in packages/app/src/components/Root/Root.tsx:
import ExtensionIcon from '@material-ui/icons/Extension';

// Inside your SidebarPage component:
<SidebarItem icon={ExtensionIcon} to="dora-metrics" text="DORA Metrics" />

Option 2: Using the legacy plugin system

  1. Add the plugin to your app's packages/app/src/plugins.ts:
export { doraMetricsPlugin } from '@enginuity-io/dora-metrics';
  1. Add the page to your app's packages/app/src/App.tsx:
import { DoraMetricsPage } from '@enginuity-io/dora-metrics';

// Inside your AppRouter or similar component:
<Route path="/dora-metrics" element={<DoraMetricsPage />} />
  1. Add a link to the sidebar in packages/app/src/components/Root/Root.tsx:
import ExtensionIcon from '@material-ui/icons/Extension';

// Inside your SidebarPage component:
<SidebarItem icon={ExtensionIcon} to="dora-metrics" text="DORA Metrics" />

Complete Integration

For complete integration, you need to install and configure both the frontend and backend plugins. Here's a step-by-step guide for both the new plugin system (recommended) and the legacy plugin system.

Using the New Plugin System (Backstage 1.15+)

  1. Install both plugins:
# From your Backstage root directory
yarn add --cwd packages/app @enginuity-io/dora-metrics
yarn add --cwd packages/backend @enginuity-io/dora-metrics-backend
  1. Register the frontend plugin in packages/app/src/App.tsx:
import { doraMetricsPlugin } from '@enginuity-io/dora-metrics';
import { DoraMetricsPage } from '@enginuity-io/dora-metrics';

// Inside your FlatRoutes component:
<Route path="/dora-metrics" element={<DoraMetricsPage />} />

// Add to your plugins list
const app = createApp({
  apis,
  plugins: [
    // ... other plugins
    doraMetricsPlugin,
  ],
});
  1. Register the backend plugin in packages/backend/src/index.ts:
import { doraMetricsPlugin } from '@enginuity-io/dora-metrics-backend';

// Inside your backend.add() calls:
backend.add(doraMetricsPlugin);
  1. Add the configuration to your app-config.yaml as described in the Configuration section.

Using the Legacy Plugin System

  1. Install both plugins:
# From your Backstage root directory
yarn add --cwd packages/app @enginuity-io/dora-metrics
yarn add --cwd packages/backend @enginuity-io/dora-metrics-backend
  1. Register the frontend plugin as described in the "Option 2: Using the legacy plugin system" section above.

  2. Register the backend plugin in packages/backend/src/plugins/dora-metrics.ts:

import { createRouter } from '@enginuity-io/dora-metrics-backend';
import { Router } from 'express';
import { PluginEnvironment } from '../types';

export default async function createPlugin(
  env: PluginEnvironment,
): Promise<Router> {
  return await createRouter({
    logger: env.logger,
    config: env.config,
  });
}
  1. Import and use the plugin in packages/backend/src/index.ts:
import doraMetrics from './plugins/dora-metrics';

// Inside the main function:
const doraMetricsEnv = useHotMemoize(module, () => createEnv('dora-metrics'));
apiRouter.use('/dora-metrics', await doraMetrics(doraMetricsEnv));
  1. Add the configuration to your app-config.yaml as described in the Configuration section.

Development

# From your Backstage root directory
yarn start # Starts both frontend and backend

Testing

To test the plugin in isolation before integrating with Backstage:

# From the plugin directory
yarn test

You can also use the standalone test app in the repository:

# From the test-app directory
yarn install
yarn start

Publishing to npm

To publish the package to npm:

# From the plugin directory
yarn build
npm login  # Login to your npm account
npm publish --access public  # For scoped packages

API Reference

DoraMetricsPage Component

Main component that renders the DORA metrics dashboard.

import { DoraMetricsPage } from '@enginuity-io/dora-metrics';

<DoraMetricsPage />

Configuration API

The plugin reads configuration from the Backstage app-config.yaml file using the @backstage/config package.

Troubleshooting

  • No data displayed: Ensure your Apache DevLake instance is properly configured and contains DORA metrics data
  • Connection errors: Check the database connection settings in your app-config.yaml
  • CORS issues: Verify that the frontendUrl in your configuration matches your actual frontend URL

Links