Engineering
Catch the errors of your apps
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
-
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.
-
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:
bashnpm install @sentry/browsertsimport * 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.
-
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:
for f in dist/assets/*.js.map; do npx troopy incidents sourcemaps upload --id <app id> \ --release "$RELEASE" --name "${f#dist}" --content "@$f"doneThe 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
| Setting | What it does |
|---|---|
| Sites that may send | The sites whose pages may send errors. Others count as From a site that may not send. |
| Limits | How many errors the app sends a minute and a day. |
| What Troopy keeps of a person | Keep the email of the person and Keep the address of the person. Off puts a name like user-3f2a9c1b in its place. |
| Keys | A new key, with Keep the old key for 7 days or Stop the old key now. |
| Pause | A 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:
| View | What it shows |
|---|---|
| Ongoing | The incidents that are open. |
| New | The incidents that came for the first time. |
| Came back | The incidents that came back after a person resolved them. |
| Resolved | The incidents that a person resolved. |
| Ignored | The 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
| Action | What it does |
|---|---|
| Fix it | Makes a bug ticket of the incident. The Engineer can take it. |
| Resolve | Now: any new error brings it back. In the next release: only an error of a newer release brings it back. |
| Ignore | For 1 hour, For 24 hours, For 7 days, For good, Until 100 more errors or Until 10 more people see it. |
| Reopen | Opens 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.