Twilio Segment logo

Backstage Twilio Segment Analytics Plugin

An opinionated implementation of the Backstage Analytics API for Segment, from the folks at Segment.

Created by Twilio Segment

@segment/backstage-plugin-analytics-module-segment

Set up Backstage in minutes with Roadie

Installation steps

Install the plugin

yarn --cwd packages/app add @segment backstage-plugin-analytics-module-segment

Import it into your Backstage application

// packages/app/src/apis.ts
import {
  analyticsApiRef,
  configApiRef,
  identityApiRef,
} from '@backstage/core-plugin-api';
import { SegmentAnalytics } from '@segment/backstage-plugin-analytics-module-segment';

export const apis: AnyApiFactory[] = [
  // Instantiate and register the SegmentAnalytics API Implementation.
  createApiFactory({
    api: analyticsApiRef,
    deps: { configApi: configApiRef, identityApi: identityApiRef },
    factory: ({ configApi, identityApi }) =>
      SegmentAnalytics.fromConfig(configApi, {
        identityApi,
      }),
  }),
];

Optionally configure user anonymization (by default, this analytics plugin identifies the user taking actions as the logged in Backstage User's entity reference string)

// packages/app/src/apis.ts
import {
  analyticsApiRef,
  configApiRef,
  identityApiRef,
} from '@backstage/core-plugin-api';
import { SegmentAnalytics } from '@segment/backstage-plugin-analytics-module-segment';

export const apis: AnyApiFactory[] = [
  // Instantiate and register the SegmentAnalytics API Implementation.
  createApiFactory({
    api: analyticsApiRef,
    deps: { configApi: configApiRef, identityApi: identityApiRef },
    factory: ({ configApi, identityApi }) =>
      SegmentAnalytics.fromConfig(configApi, {
        identityApi,
        userIdTransform: 'sha-256',
      }),
  }),
];

Configure the plugin

// app-config.yaml
app:
  analytics:
    segment:
      writeKey: abcABCfooBARtestKEY

Found a mistake? Update these instructions.

Things to know

Set up Backstage in minutes with Roadie