From b71ef46ba41a809cad9b5f6a5234e964d1dba2a6 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Thu, 29 Aug 2024 18:45:04 +0200 Subject: [PATCH 01/15] started describing demo app instrumentation features --- demo-app/README.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index 43d8e5ee8..a9b6017d0 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -9,9 +9,42 @@ a quick and dirty example of how to get the agent initialized. ## Features -* TBD - - +The OpenTelemetry Android Demo App currently supports the following features: + +[//]: # (Are those too long/the info too basic? Should it be saying that its automatic?) +* Android Activity Lifecycle Monitoring + - Automatically captures spans for key lifecycle events: + - **Created**: Includes `onCreate`, `onStart`, `onResume` + - **Paused**: Includes `onPause` + - **Stopped**: Includes `onStop` + - **Destroyed**: Includes `onDestroy` + - This covers the entire Activity lifecycle, providing detailed insights into each phase. + +* ANR Detection + - Automatically detects and reports ANRs in the app. + - ANR events are captured as spans with detailed stack traces, providing insights into the exact operations that caused the ANR. + - The span includes key attributes such as `screen.name`, `session.id`, and network information to assist in diagnosing the issue. + - Note: The app currently does not have any features designed to intentionally trigger an ANR. + +* Slow Render Detection + - Automatically detects instances of slow rendering within the app. + - Slow render events are captured as spans, providing information on when and where rendering delays occurred. + - The span includes attributes such as `activity.name`, `screen.name`, `count`, and network details to help diagnose performance issues. + - Note: The app currently does not have any features designed to intentionally trigger slow rendering. + +* Manual Instrumentation +- Provides access to the OpenTelemetry APIs for manual instrumentation, allowing developers to create custom spans and events as needed. + +### Known Gaps +As of now, there are a few areas where the instrumentation might not be fully comprehensive: + +* Crash Reporting +App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. + + * Fragment Lifecycle Monitoring +The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. + + ## How to use First, start up the collector and jaeger with docker-compose: From 21f2e855ddce7fb9174f0953021f315fd2daac0a Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Thu, 29 Aug 2024 18:52:56 +0200 Subject: [PATCH 02/15] started describing demo app instrumentation features --- demo-app/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/demo-app/README.md b/demo-app/README.md index a9b6017d0..4beeb2a14 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -34,6 +34,7 @@ The OpenTelemetry Android Demo App currently supports the following features: * Manual Instrumentation - Provides access to the OpenTelemetry APIs for manual instrumentation, allowing developers to create custom spans and events as needed. +- Note: No manual instrumentation has been added to the demo app so far. ### Known Gaps As of now, there are a few areas where the instrumentation might not be fully comprehensive: From 4d45cee119d2076d6970a1b086c254ea929e8e54 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Fri, 30 Aug 2024 09:56:52 +0200 Subject: [PATCH 03/15] some todos --- demo-app/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index 4beeb2a14..4e3996f22 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -34,7 +34,7 @@ The OpenTelemetry Android Demo App currently supports the following features: * Manual Instrumentation - Provides access to the OpenTelemetry APIs for manual instrumentation, allowing developers to create custom spans and events as needed. -- Note: No manual instrumentation has been added to the demo app so far. +- Note: The only manual instrumentation that has been added to the demo app so far is an event after clicking on the OpenTelemetry logo. ### Known Gaps As of now, there are a few areas where the instrumentation might not be fully comprehensive: @@ -45,7 +45,9 @@ App crashes are automatically reported, but the app currently does not include a * Fragment Lifecycle Monitoring The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. - + * HTTP client +[//]: # ( TODO) + * Auto-instrumentation ## How to use First, start up the collector and jaeger with docker-compose: From 667f61ad80ca08884e6838989f261d794e325474 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Fri, 30 Aug 2024 12:04:44 +0200 Subject: [PATCH 04/15] added http as a gap in instrumentation --- demo-app/README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index 4e3996f22..d93316f77 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -11,7 +11,6 @@ a quick and dirty example of how to get the agent initialized. The OpenTelemetry Android Demo App currently supports the following features: -[//]: # (Are those too long/the info too basic? Should it be saying that its automatic?) * Android Activity Lifecycle Monitoring - Automatically captures spans for key lifecycle events: - **Created**: Includes `onCreate`, `onStart`, `onResume` @@ -42,12 +41,12 @@ As of now, there are a few areas where the instrumentation might not be fully co * Crash Reporting App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. - * Fragment Lifecycle Monitoring +* Fragment Lifecycle Monitoring The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. - * HTTP client -[//]: # ( TODO) - * Auto-instrumentation +* HTTP Client Instrumentation + OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. + ## How to use First, start up the collector and jaeger with docker-compose: @@ -58,4 +57,4 @@ $ docker compose up ``` Then run the demo app in the Android emulator and navigate to http://localhost:16686 -to see the Jaeger UI. +to see the Jaeger UI. From 7333d9ffe9a42dfe0d04bad3508204db383957b3 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Fri, 30 Aug 2024 12:07:22 +0200 Subject: [PATCH 05/15] formatting --- demo-app/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index d93316f77..84322ed15 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -13,10 +13,10 @@ The OpenTelemetry Android Demo App currently supports the following features: * Android Activity Lifecycle Monitoring - Automatically captures spans for key lifecycle events: - - **Created**: Includes `onCreate`, `onStart`, `onResume` - - **Paused**: Includes `onPause` - - **Stopped**: Includes `onStop` - - **Destroyed**: Includes `onDestroy` + - Created: Includes `onCreate`, `onStart`, `onResume`, + - Paused: Includes `onPause`, + - Stopped: Includes `onStop`, + - Destroyed: Includes `onDestroy`. - This covers the entire Activity lifecycle, providing detailed insights into each phase. * ANR Detection From 963fab627a5d6f8bd0e62b413f07f88ffd0d5dab Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Fri, 30 Aug 2024 12:10:53 +0200 Subject: [PATCH 06/15] formatting --- demo-app/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index 84322ed15..fce0fcd0d 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -38,13 +38,13 @@ The OpenTelemetry Android Demo App currently supports the following features: ### Known Gaps As of now, there are a few areas where the instrumentation might not be fully comprehensive: -* Crash Reporting +* Crash Reporting App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. -* Fragment Lifecycle Monitoring +* Fragment Lifecycle Monitoring The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. -* HTTP Client Instrumentation +* HTTP Client Instrumentation OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. ## How to use From 2f5c83f2b43cea19bd74f428c960fb164bd99196 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Tue, 3 Sep 2024 15:18:58 +0200 Subject: [PATCH 07/15] small formatting fix --- demo-app/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index fce0fcd0d..b0cb56e5d 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -32,8 +32,8 @@ The OpenTelemetry Android Demo App currently supports the following features: - Note: The app currently does not have any features designed to intentionally trigger slow rendering. * Manual Instrumentation -- Provides access to the OpenTelemetry APIs for manual instrumentation, allowing developers to create custom spans and events as needed. -- Note: The only manual instrumentation that has been added to the demo app so far is an event after clicking on the OpenTelemetry logo. + - Provides access to the OpenTelemetry APIs for manual instrumentation, allowing developers to create custom spans and events as needed. + - Note: The only manual instrumentation that has been added to the demo app so far is an event after clicking on the OpenTelemetry logo. ### Known Gaps As of now, there are a few areas where the instrumentation might not be fully comprehensive: From e81430481f49884288500857d1466a21e3219ae0 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Tue, 3 Sep 2024 17:25:23 +0200 Subject: [PATCH 08/15] small formatting fix --- demo-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo-app/README.md b/demo-app/README.md index b0cb56e5d..9dff139da 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -57,4 +57,4 @@ $ docker compose up ``` Then run the demo app in the Android emulator and navigate to http://localhost:16686 -to see the Jaeger UI. +to see the Jaeger UI. From 95194fd7bcbf65c78c638089a34678da64078549 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Wed, 4 Sep 2024 09:58:47 +0200 Subject: [PATCH 09/15] wording change --- demo-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo-app/README.md b/demo-app/README.md index 9dff139da..c9bde5c52 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -36,7 +36,7 @@ The OpenTelemetry Android Demo App currently supports the following features: - Note: The only manual instrumentation that has been added to the demo app so far is an event after clicking on the OpenTelemetry logo. ### Known Gaps -As of now, there are a few areas where the instrumentation might not be fully comprehensive: +As of now, there are a few areas where the instrumentation might not be comprehensive: * Crash Reporting App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. From d209604e4e9981760ab9ad53effd215e06e7dbe7 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Wed, 4 Sep 2024 09:59:33 +0200 Subject: [PATCH 10/15] formatting --- demo-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo-app/README.md b/demo-app/README.md index c9bde5c52..a317d42cd 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -45,7 +45,7 @@ App crashes are automatically reported, but the app currently does not include a The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. * HTTP Client Instrumentation - OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. +OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. ## How to use From 451845cf72a64e4a2065f9f37c689187eaaaeba3 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Wed, 4 Sep 2024 11:05:38 +0200 Subject: [PATCH 11/15] added disk buffering bullet under http instrumentation --- demo-app/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index a317d42cd..d38b5cbf8 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -38,14 +38,15 @@ The OpenTelemetry Android Demo App currently supports the following features: ### Known Gaps As of now, there are a few areas where the instrumentation might not be comprehensive: -* Crash Reporting -App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. +* Crash Reporting + - App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. * Fragment Lifecycle Monitoring -The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. + - The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. -* HTTP Client Instrumentation -OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. +* HTTP Client Instrumentation + - OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. + - Additionally, disk buffering is enabled in the app, allowing telemetry data from HTTP requests to be temporarily stored on disk when the network is unavailable. Although this feature is configured, it isn't actively demonstrated due to the absence of network activity. ## How to use From a728f83fd38451f624d8f890185694cacb1193d3 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Wed, 4 Sep 2024 22:19:25 +0200 Subject: [PATCH 12/15] moved disk buffering gap description up --- demo-app/README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index d38b5cbf8..a9f343df4 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -38,15 +38,17 @@ The OpenTelemetry Android Demo App currently supports the following features: ### Known Gaps As of now, there are a few areas where the instrumentation might not be comprehensive: -* Crash Reporting - - App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. +* Crash Reporting +App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. -* Fragment Lifecycle Monitoring - - The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. +* Fragment Lifecycle Monitoring +The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. -* HTTP Client Instrumentation - - OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. - - Additionally, disk buffering is enabled in the app, allowing telemetry data from HTTP requests to be temporarily stored on disk when the network is unavailable. Although this feature is configured, it isn't actively demonstrated due to the absence of network activity. +* HTTP Client Instrumentation +OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. + +* Disk Buffering +Disk buffering is enabled in the app, allowing telemetry data to be temporarily stored on disk when the network is unavailable. Although this feature is configured, it isn't actively demonstrated due to the absence of network activity. ## How to use From b513fb135dddab88eb7e31c078da39941dc88510 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Wed, 4 Sep 2024 22:23:21 +0200 Subject: [PATCH 13/15] moved fragment lifecycle from gaps to features --- demo-app/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/demo-app/README.md b/demo-app/README.md index a9f343df4..c28029c34 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -19,6 +19,9 @@ The OpenTelemetry Android Demo App currently supports the following features: - Destroyed: Includes `onDestroy`. - This covers the entire Activity lifecycle, providing detailed insights into each phase. +* Fragment Lifecycle Monitoring + + * ANR Detection - Automatically detects and reports ANRs in the app. - ANR events are captured as spans with detailed stack traces, providing insights into the exact operations that caused the ANR. @@ -41,9 +44,6 @@ As of now, there are a few areas where the instrumentation might not be comprehe * Crash Reporting App crashes are automatically reported, but the app currently does not include any features that intentionally trigger crashes. -* Fragment Lifecycle Monitoring -The Android agent supports monitoring fragment lifecycles, but the current demo app does not include any fragments, so this feature is not demonstrated. - * HTTP Client Instrumentation OpenTelemetry Android supports automatic instrumentation for HTTP client libraries. This feature captures spans for HTTP requests with details. However, the demo app does not currently demonstrate this feature as it doesn't make any network requests. From 1ad8933f5b679d6dcf458b84d3846fc651bdf59c Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Thu, 5 Sep 2024 15:25:25 +0200 Subject: [PATCH 14/15] added description for the fragment lifecycle monitoring --- demo-app/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/demo-app/README.md b/demo-app/README.md index c28029c34..565687103 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -20,7 +20,18 @@ The OpenTelemetry Android Demo App currently supports the following features: - This covers the entire Activity lifecycle, providing detailed insights into each phase. * Fragment Lifecycle Monitoring - + - Automatically captures spans for key lifecycle events: + - Attached: `onAttach` (fragment attached to context), + - Created: `onCreate`, + - View Created: `onViewCreated` (UI created), + - Started: `onStart`, + - Resumed: `onResume` (fragment active), + - Paused: `onPause`, + - Stopped: `onStop`, + - View Destroyed: `onDestroyView` (UI removed), + - Destroyed: `onDestroy`, + - Detached: `onDetach` (fragment disconnected). + - Provides detailed insights into each lifecycle phase. * ANR Detection - Automatically detects and reports ANRs in the app. From 117f3554d0824fdf9b60084079772df049f93373 Mon Sep 17 00:00:00 2001 From: Magda Wojtowicz Date: Thu, 5 Sep 2024 15:31:41 +0200 Subject: [PATCH 15/15] added description where there are fragments --- demo-app/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/demo-app/README.md b/demo-app/README.md index 565687103..160c6a6c0 100644 --- a/demo-app/README.md +++ b/demo-app/README.md @@ -32,6 +32,7 @@ The OpenTelemetry Android Demo App currently supports the following features: - Destroyed: `onDestroy`, - Detached: `onDetach` (fragment disconnected). - Provides detailed insights into each lifecycle phase. + - Can be observed in the "About OpenTelemetry Android" activity, entered via "Learn more" on the main screen. * ANR Detection - Automatically detects and reports ANRs in the app.