Skip to main content

Engineering

Send the errors of your apps to Troopy, read each incident, and turn one into a bug ticket.

Incidents catches the errors and crashes of the apps of your business. An app sends them with any Sentry SDK, and the QA tester looks at each new incident. This page tells how to connect an app, read an incident, and turn one into a bug ticket.

Before you begin

  • Incidents is a part of the Engineering product. A person sees it only when it has Engineering.
  • Owners and admins add, change, pause and remove the apps.

Connect an app

  1. Add the app

    Open Incidents, then the Apps tab. Select Add an app. Give it a name, and say What is it built with?: Web app, Next.js, Node.js, Python or Something else. Select Add the app.

  2. Install the Sentry SDK

    The page of the app shows the install command and the code, with its DSN. Put the code Before anything else in your app. For a web app:

    bash
    npm install @sentry/browser
    ts
    import * as Sentry from "@sentry/browser"; Sentry.init({  dsn: "https://<key>@ingest.troopy.ai/<number>",  tracesSampleRate: 0,});

    Any Sentry SDK works. Give it the DSN, and turn tracing off.

  3. Send a test error

    Select Send a test error. The app shows Waiting for its first error until the first one comes.

Upload source maps

With source maps, the errors of a release show the own files, lines and functions of your app. Upload the map of each built file of a release from your CI, with the CLI:

bash
for f in dist/assets/*.js.map; do  npx troopy incidents sourcemaps upload --id <app id> \    --release "$RELEASE" --name "${f#dist}" --content "@$f"done

The page of the app has this script with its id: select Copy the upload script. A map has 25 MB at most. An app keeps the maps of its latest 10 releases.

The settings of an app

SettingWhat it does
Sites that may sendThe sites whose pages may send errors. Others count as From a site that may not send.
LimitsHow many errors the app sends a minute and a day.
What Troopy keeps of a personKeep the email of the person and Keep the address of the person. Off puts a name like user-3f2a9c1b in its place.
KeysA new key, with Keep the old key for 7 days or Stop the old key now.
PauseA paused app sends nothing for an hour at a time. Troopy drops what comes.

The page also says what Troopy dropped today, and why: over a limit, too large, or Over 200 new incidents in a day.

Read the list

Issues lists the incidents of a view:

ViewWhat it shows
OngoingThe incidents that are open.
NewThe incidents that came for the first time.
Came backThe incidents that came back after a person resolved them.
ResolvedThe incidents that a person resolved.
IgnoredThe incidents that a person ignores.

Each row shows how bad it is, what and where. It also shows the errors of the last 24 hours as bars, the count of errors and of people, and when the last error came. Sort by Last seen, First seen, Most errors or Most people. The keys J and K move between rows. Search incidents finds by title, or by number, such as #14.

Read an incident

The page of an incident shows:

  • What happened: the look of the QA tester, with how bad it is, what to do, and why.
  • The ticket that fixed it, and the changes that went live just before it began: possible causes.
  • The facts, the errors of the last 14 days, and one error whole: The first error, The latest error or an older one.
  • The error itself: its frames, What happened before, the request, the person, the device and the tags.

Each word of an error comes from the users of the app. The page shows it as text, and never runs it.

Act on an incident

ActionWhat it does
Fix itMakes a bug ticket of the incident. The Engineer can take it.
ResolveNow: any new error brings it back. In the next release: only an error of a newer release brings it back.
IgnoreFor 1 hour, For 24 hours, For 7 days, For good, Until 100 more errors or Until 10 more people see it.
ReopenOpens a resolved or ignored incident again.

When the ticket of an incident goes live, Troopy resolves the incident in the next release. The first release after it says "The fix is in release" and its number. An error after the fix brings the incident back, and Troopy notes it on the ticket.

The QA tester and incidents

  • Each new incident, each one that came back, and each spike goes to the QA tester for a look.
  • A spike is an hour with 100 errors or more, and 10 times the average hour of the day before.
  • The QA tester gives each one a severity, a verdict and a summary. It makes a bug ticket only after a person says yes.
  • An alert shows in Needs you until a person opens the incident, resolves it or ignores it.

Troopy keeps each error for 30 days.