Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 27 additions & 15 deletions develop-docs/sdk/telemetry/sessions/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ it must not be updated anymore.

- `ok`: The session is currently in progress but healthy. This can be the terminal state of a session.
- `exited`: The session terminated normally.
- `unhandled`: The session terminated with an unhandled error.
- `crashed`: The session terminated in a crash.
- `abnormal`: The session encountered a non crash related abnormal exit.

Expand Down Expand Up @@ -217,6 +218,7 @@ something like this:
- `did`: _Optional_. The distinct user id of the group.
- `exited`: _Optional_. The number of sessions with status `"exited"` _without_ any errors.
- `abnormal`: _Optional_. The number of sessions with status `"abnormal"`.
- `unhandled`: _Optional_. The number of sessions with status `"unhandled"`.
- `crashed`: _Optional_. The number of sessions with status `"crashed"`.
- `errored`: _Optional_. The number of sessions with status `"exited"` that had a non-zero `errors` count.

Expand Down Expand Up @@ -265,7 +267,7 @@ deduplicate the total session count as an optimization. If the initial
### Terminal Session States

A session can exist in one of two states: in progress or terminated. A terminated
session must not receive further updates. `exited`, `crashed` and `abnormal`
session must not receive further updates. `exited`, `unhandled`, `crashed` and `abnormal`
are all terminal states. When a session reaches this state the client must
not report any more session updates or start a new session.

Expand All @@ -276,33 +278,43 @@ SDKs are encouraged to distinguish between different ways of ending a session:
sessions ending in `exited` will be considered for session durations.
A session is allowed to go to `exited` even if errors occurred.

- `unhandled`: a session should be reported as unhandled under the following cases:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `unhandled`: a session should be reported as unhandled under the following cases:
- `unhandled`: a session should be reported as unhandled in the following cases:


- an unhandled error occurred and there is a natural session end (eg: end of HTTP request).
- the application did not handle an error, but the language or framework prevented the process from terminating.

- `crashed`: a session should be reported as crashed under the following cases:

- an unhandled error occurred and there is a natural session end (eg: end of HTTP request)
- a complete crash of the application occurred (crash to desktop, termination)
- a user feedback dialog is surfaced to the user. After this, the SDK must start a new session as if it fully crashed.;
- a complete crash of the application occurred (crash to desktop, termination).
- a user feedback dialog is surfaced to the user. After this, the SDK must start a new session as if it fully crashed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- a user feedback dialog is surfaced to the user. After this, the SDK must start a new session as if it fully crashed.
- a crash report user feedback dialog is surfaced to the user. After this, the SDK must start a new session as if it fully crashed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this specific to sentry's dialog?


- `abnormal`: SDKs are encouraged to always transition a session to `exited` or
`crashed` if they can do so. For SDKs that are capable of always ending sessions, they should end a
session in `abnormal` if they could not detect the application shutting down
correctly. Examples for abnormal sessions:

- a computer was shut down / lost power
- the user force closed an application through `kill -9` or the task manager
- a computer was shut down / lost power.
- the user force closed an application through `kill -9` or the task manager.

Abnormal session ends are normally to be recorded on application restart.

### Crashed, Abnormal vs Errored
### Crashed, Unhandled, Abnormal vs Errored

A session is supposed to transition to `crashed` when it encountered an a full
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A session is supposed to transition to `crashed` when it encountered an a full
A session is supposed to transition to `crashed` when it encountered a full

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A session is supposed to transition to `crashed` when it encountered an a full
A session is supposed to transition to `crashed` when it encounters a full

application crash and the process terminated. For applications that cannot fully
crash, such as a website, `unhandled` is more appropriate.
It's acceptable to transition to the `crashed` state if the user encountered an
error dialog.
For server environments where we create sessions for every incoming request,
`unhandled` is basically like status code `500` internal server error.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`unhandled` is basically like status code `500` internal server error.
`unhandled` is basically like status code `500 Internal Server Error`.


A session is supposed to transition to `crashed` when it encountered an unhandled
error such as a full application crash. For applications that cannot fully
crash such as a website, it's acceptable to transition to the crashed state if
the user encountered an error dialog. For server environments where we create sessions
for every incoming request, `crashed` is basically like status code `500` internal server error.
So if there is an unhandled error happening during the request, the session should be `crashed`.
Note that `unhandled` became supported on the server in v25.9.0, prior to that
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note that `unhandled` became supported on the server in v25.9.0, prior to that
Note that `unhandled` became supported on the server in v25.9.0. Prior to that,

`crashed` was used for all of the cases above.

Abnormal are sessions of which their fate is unknown. For desktop applications, for instance, it makes sense to transition a session to abnormal if it was stored
but the exit of the application was not observed but also did not crash. These are situations where the user forced the app to close via the
`abnormal` are sessions of which their fate is unknown. For desktop
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`abnormal` are sessions of which their fate is unknown. For desktop
`abnormal` are sessions where their fate is unknown. For desktop

applications, for instance, it makes sense to transition a session to `abnormal`
if it was stored but the exit of the application was not observed but also did
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if it was stored but the exit of the application was not observed but also did
if it was stored but application exit was not observed but also did

not crash. These are situations where the user forced the app to close via the
task manager, the machine lost power or other situations. A session can be
_stored_ by persisting it to disk eagerly. This saved file can be detected on
application restart to close the session as `abnormal`.
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/android/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/apple/common/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

<Alert>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/dotnet/common/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/godot/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/common/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.


In order to monitor release health, the SDK sends session data.
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/native/common/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/powershell/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/python/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,6 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends <PlatformLink to="/configuration/sessions/">sessions</PlatformLink>.
2 changes: 1 addition & 1 deletion docs/platforms/python/configuration/sessions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ A session represents the interaction between the user and the application. Sessi

## Tracking Release Health With Sessions

Sessions are used to monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Sessions are used to monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, you need to set a <PlatformLink to="/configuration/releases/">release</PlatformLink>.
2 changes: 1 addition & 1 deletion docs/platforms/react-native/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/ruby/common/configuration/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ After configuring your SDK, you can install a repository integration or manually

## Release Health

Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.
Monitor the [health of releases](/product/releases/health/) by observing user adoption, usage of the application, percentage of [crashes](/product/releases/health/#crashes--unhandled), and [session data](/product/releases/health/#sessions). Release health will provide insight into the impact of crashes and bugs as it relates to user experience, and reveal trends with each new issue through the [Release Details](/product/releases/release-details/) graphs and filters.

In order to monitor release health, the SDK sends session data.

Expand Down
Loading
Loading