Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Demoing proposed new structure #161

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
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
2 changes: 1 addition & 1 deletion docs/android/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Getting Started
description: Learn about Embrace for the Android platform
sidebar_position: 0
sidebar_position: 1
---

# Android Platform Documentation
Expand Down
19 changes: 19 additions & 0 deletions docs/performance-tracing/implementation/exporting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: Exporting traces
description: Exporting traces
sidebar_position: 2
---

## Exporting Traces via the Spans API

Some text here

## Exporting Traces via Data Destinations

Some text here

## Exporting Traces to Open Telemetry Collectors

Traces instrumented with the Embrace SDK can be exported exported to to any [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) directly from an app using the [SpanExporter](https://opentelemetry.io/docs/specs/otel/trace/sdk/#span-exporter).

For details see: [Export to OpenTelemetery Collectors](https://dev.emb-eng.com/docs-pr161/open-telemetry/integration/#export-to-opentelemetry-collectors)
9 changes: 9 additions & 0 deletions docs/performance-tracing/implementation/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Implementation
description: Implementation
sidebar_position: 1
---

# Implementation

Stuff will happen here. Links to SDKs.
14 changes: 14 additions & 0 deletions docs/performance-tracing/implementation/sdks/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Using Embrace SDKs
description: SDKs
sidebar_position: 0
---

Detailed instrumatation instructions can be found at the links below:

- [Android](/docs/android/features/traces.md)
- [iOS](/docs/ios/open-source/features/traces.md)
- [React Native](/docs/react-native/features/traces.md)
- [Unity](/docs/unity/features/traces.md)
- [Flutter](/docs/flutter/features/traces.md)

5 changes: 5 additions & 0 deletions docs/performance-tracing/implementation/third-party.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: Third-party instrumentation
description: Third-party instrumentation
sidebar_position: 1
---
33 changes: 33 additions & 0 deletions docs/performance-tracing/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: Getting Started
description: Get Started with Performance Tracing
sidebar_position: 0
---

# Getting Started

## Improving performance with Traces

Embrace’s Performance Tracing solution gives you visibility into any app operation you’d like to track, including duration, success rate, and any contextual metadata collected at runtime that helps debug the root cause of your mobile app's performance issues. With our tool, you can quickly spot any bottlenecks in your app’s architecture, pinpoint areas you need to troubleshoot with high precision, and ultimately deliver a truly optimized user experience.

## Learn More

See these tracing topics:

- [What is Performance Tracing?](https://embrace.io/blog/what-is-performance-tracing/)
- [Building Dashboards, Alerts, and Widgets with spans and traces](https://embrace.io/blog/spans-in-custom-dashboards-alerts/)
- [View active network requests in traces](https://embrace.io/blog/network-spans-in-traces/)
- [How to optimize mobile performance using traces](https://embrace.io/blog/mobile-performance-tracing/)

## Instrumentation Details

Detailed instrumentation instructions can be found the the link below:
- [Android](/docs/android/features/traces.md)
- [iOS](/docs/ios/open-source/features/traces.md)
- [React Native](/docs/react-native/features/traces.md)
- [Unity](/docs/unity/features/traces.md)
- [Flutter](/docs/flutter/features/traces.md)

## View Traces in the Embrace Dashboard

After you’ve instrumented your app, you can see your traces in the [Embrace UI](https://embrace.io/docs/features/traces/)
58 changes: 58 additions & 0 deletions docs/performance-tracing/technical-details.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: Technical Details
description: Technical Details for Performance Tracing
sidebar_position: 2
---

# Technical Details for Performance Tracing

Here are some details about how tracing works in Embrace:

## Definitions

Trace: Describes the end-to-end journey of one or more connected spans.

Span: Describes an operation or "work" taking place on a service. Spans can describe broad operations - for example, the operation of an app fetching and rendering an image in the UI - or as granular as a single invocation of a function.

Root Span: A span that doesn't have a parent that represents the entire workflow at a high level.

Span Instance: A specific occurrence of a workflow, representing an individual run of it, identified by a unique Span ID.

Child Spans: Spans that list a given span as their parent. When filtering, a matching child span includes its parent.

<img src={require('@site/static/images/span-relationships.png').default} />


## Span Outcomes

Successful (definition and if it’s auto or manual set)

Error (definition and if it’s auto or manual set)

User Abandon (definition and if it’s auto or manual set)

Unknown (definition and if it’s auto or manual set)

## Span Filters in dashboard

All Spans: TBD

Slowest Spans: Spans completed successfully with duration > p95.

Fastest Spans: Spans completed successfully and not slow (with duration < p95).

Types of Unsuccessful Spans:

- Error: Spans encountered an error.
- Unknown: Insufficient data to determine outcome.
- User Abandon: User navigated away before completion.

## Implementation

Detailed instrumentation instructions can be found at the links below:
- [Android](/docs/android/features/traces.md)
- [iOS](/docs/ios/open-source/features/traces.md)
- [React Native](/docs/react-native/features/traces.md)
- [Unity](/docs/unity/features/traces.md)
- [Flutter](/docs/flutter/features/traces.md)
-
89 changes: 89 additions & 0 deletions docs/performance-tracing/tracing-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: Tracing UI
description: Tracing UI in the Dashboard
sidebar_position: 3
---
NOTE to future self when we implement this we need to delete: https://embrace.io/docs/features/traces/

# Tracing UI

Embrace’s Traces solution gives you visibility into any app operation you’d like to track, including duration, success rate, and any contextual metadata collected at runtime that helps debug the root cause of your mobile app's performance issues. With our tool, you can quickly spot any bottlenecks in your app’s architecture, pinpoint areas you need to troubleshoot with high precision, and ultimately deliver a truly optimized user experience.

## Root Spans View
The primary page shows all root spans in your app, as well as summary metrics like count, error rate, percentiles of duration, and changes from a previous version.

<img src={require('@site/static/images/traces-page.png').default} alt="Traces"/>

To narrow down the spans that are summarized in this view, you can apply the following filters on the root span as well as the child spans:
* Name
* Duration*
* Outcome
* Attributes keys and values
* Span event names

*failed Spans are not included for duration aggregates, they are displayed as `0`

## Root Span Summary View
By clicking on the name of a Root Span in the Root Spans View, you can see a partial listing of all the instances of that Root Span.

Each row represents a specific instance of that Root Span being recorded. You can see its status, unique Span ID, and duration, in addition to start and end times. All of these columns other than the Span ID is sortable.

Clicking on the instance will open up an in-line preview of the details of that instance, including the child spans that it has, their duration, and whether they were completed successfully.

On the right side each row that shows a Root Span instance, there are two icons. The first one takes you to the Root Span Instance View, where you can see all the details about that instance, including attributes and events on each child span. The second one takes you to the specific session in the User Timeline view that this instance ended in so you can see the full context of what happened before and after this Root Span was recorded.

<img src={require('@site/static/images/root-span-summary-1.png').default} alt="Root Span summary"/>

You can filter by properties similar to those in the Root Span View.

<img src={require('@site/static/images/root-spans-filters.png').default} alt="Trace summary filters"/>

## Root Span Instance View
This view shows a Root Span in its entirety. Not only can you see all the information in trace instance preview, you can also see at the individual events and attributes recorded as part of on a each child span, along with metadata about the device and app.

<img src={require('@site/static/images/root-span-instance-1.png').default} alt="Trace instance"/>

## User Timeline view
Root Spans appear in both the Timeline View and Timeline Details.

Clicking on "See Details" for any Root Span within the timeline will take you directly to the Root Span Instance View.

<img src={require('@site/static/images/traces-timeline.png').default} alt="User timeline"/>

## Sessions Filters
Not only can you filter spans in the various pages dedicated to Traces, you can filter sessions in the Sessions View by whether or not they contain specific spans with certain attributes and events.

<img src={require('@site/static/images/trace-session-filters.png').default} alt="Session filters"/>

## Boards, Alerts, and Custom Metrics
You can create Boards, Alerts, and Custom Metrics based on span data.

<img src={require('@site/static/images/spans-widgets.png').default} alt="Trace widgets"/>
<img src={require('@site/static/images/spans-alerts.png').default} alt="Trace alerts"/>

## Slow Root Spans
With the Slow Root Spans feature, you can identify performance bottlenecks and prioritize your optimization efforts.
Slow Root Spans are instances with both significant occurrences (100 over the last two days) and durations surpassing the 95th percentile of successful spans bearing the same name.
You can get the slow Root Spans on the issues page.

<img src={require('@site/static/images/slow-root-spans.png').default} alt="Slow traces"/>

Once you click on a Slow Root Span, you can see specific instances of that span.

## Span Instances Filters
Filter your instances by durantion or outcome with these filters:
* **All**: all instances displayed
* **Slowest**: instances completed successfully with duration > p95.
* **Fastest**: instances completed successfully and not slow (with duration < p95).
* **Unsuccessful**:
* **Erro**r: instances encountered an error.
* **Unknown**: insufficient data to determine instance outcome.
* **User Abandon**: user navigated away before instance completion.

## Implementation Details
For detailed implementation instructions, see links below:
1. [**Android**](/android/features/traces)
2. [**iOS**](/ios/open-source/features/traces)
3. [**Unity**](/unity/features/traces)
4. [**React Native**](/react-native/features/traces)
5. [**Flutter**](/flutter/features/traces)
7 changes: 7 additions & 0 deletions docs/performance-tracing/troubleshooting/FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: FAQ
description: FAQ
sidebar_position: 5
---

FAQ here
7 changes: 7 additions & 0 deletions docs/performance-tracing/troubleshooting/further-learning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Further Learning
description: Further Learning
sidebar_position: 5
---

Learn here from other Embrace resources like knowledge base or blogs or tutorials or stuff.
9 changes: 9 additions & 0 deletions docs/performance-tracing/troubleshooting/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Feature Support
description: Feature Support
sidebar_position: 4
---

# Troubleshooting

Having trouble? Check out these addtional reseources.
9 changes: 9 additions & 0 deletions docs/performance-tracing/use-cases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Use Cases
description: Use Cases for Tracing
sidebar_position: 5
---

## Use Cases

We should write a lot in here.
5 changes: 5 additions & 0 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ const sidebars: SidebarsConfig = {
label: "Features",
items: [{ type: "autogenerated", dirName: "features" }],
},
{
type: "category",
label: "Tracing",
items: [{ type: "autogenerated", dirName: "performance-tracing" }],
},
{
type: "category",
label: "Partnerships",
Expand Down
Binary file added static/images/span-components.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/span-relationships.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.