You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: support/power-platform/power-apps/create-and-use-apps/monitor-alternatives-canvas-apps.md
+30-30Lines changed: 30 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
-
title: Troubleshoot Canvas Apps When Live Monitor Is Unavailable
3
-
description: Debug Power Apps canvas apps with alternative tools like Application Insights, Dataverse, and on-screen diagnostics when Live monitor is unsupported.
2
+
title: Troubleshoot canvas apps if Live monitor is unsupported
3
+
description: Debug Power Apps canvas apps by using alternative tools such as Application Insights, Dataverse, and on-screen diagnostics if Live monitor is unsupported.
4
4
ms.date: 01/15/2026
5
5
ms.reviewer: carlosff, v-shaywood
6
6
ms.custom: sap:Running Canvas App
@@ -12,23 +12,23 @@ search.audienceType:
12
12
13
13
## Summary
14
14
15
-
This article describes alternative debugging approaches for Power Apps [canvas apps](/power-apps/maker/canvas-apps/getting-started)when [Live monitor](/power-apps/maker/monitor-canvasapps) isn't available. Use these techniques for SharePoint integrated forms, custom pages, or custom portal embeddings where you can't open Live monitor alongside the app.
15
+
This article discusses alternative debugging approaches for Microsoft Power Apps [canvas apps](/power-apps/maker/canvas-apps/getting-started)in scenarios that don't support [Live monitor](/power-apps/maker/monitor-canvasapps). Use these techniques for SharePoint integrated forms, custom pages, or custom portal embeddings in which you can't open Live monitor alongside the app.
16
16
17
-
Live monitor is the recommended tool for debugging canvas apps because it displays real-time events and works with the [Trace function](/power-platform/power-fx/reference/function-trace). However, some hosted or embedded scenarios don't support it. This article covers alternatives such as Application Insights, [Dataverse](/power-apps/maker/data-platform/data-platform-intro) logging tables, SharePoint list logging, and on-screen diagnostics panels.
17
+
Live monitor is the recommended tool for debugging canvas apps because it displays real-time events and works together with the [Trace function](/power-platform/power-fx/reference/function-trace). However, some hosted or embedded scenarios don't support it. This article covers alternatives such as Application Insights, [Dataverse](/power-apps/maker/data-platform/data-platform-intro) logging tables, SharePoint list logging, and on-screen diagnostics panels.
18
18
19
19
> [!NOTE]
20
-
> For scenarios where Live monitor is available, see [Debug canvas apps with Live monitor and Trace](monitor-debugging-canvas-apps.md).
20
+
> For scenarios in which Live monitor is supported and available, see [Debug canvas apps with Live monitor and Trace](monitor-debugging-canvas-apps.md).
21
21
22
22
## Alternative debugging approaches
23
23
24
-
When Live monitor isn't available, choose an alternative based on your environment and needs:
24
+
If Live monitor isn't available, choose one of the following alternative debugging methods based on your environment and needs.
|[Application Insights](#application-insights-integration)| Centralized telemetry and performance monitoring | Requires Azure setup. Emits traces and metrics outside Power Apps. |
29
29
|[Dataverse logging table](#write-debug-records-to-dataverse)| Ad-hoc diagnostics and audit trails | Create a custom table. Use guarded logic to write records when debugging. |
30
-
|[SharePoint list logging](#write-debug-records-to-sharepoint)| Lightweight environments without Dataverse | Use `Collect` or `Patch` to a list. Prune entries to control size. |
31
-
|[On-screen diagnostics panel](#create-an-on-screen-diagnostics-panel)| Immediate feedback during testing | Only for secure audiences. Remove before broad rollout. |
30
+
|[SharePoint list logging](#write-debug-records-to-sharepoint)| Lightweight environments without Dataverse | Use `Collect` or `Patch`(to a list). Prune entries to control size. |
31
+
|[On-screen diagnostics panel](#create-an-on-screen-diagnostics-panel)| Immediate feedback during testing | Only for secure audiences. Remove before a broad rollout. |
32
32
33
33
## Application Insights integration
34
34
@@ -44,21 +44,21 @@ For setup instructions, see [Analyze app telemetry using Application Insights](/
44
44
45
45
## Write debug records to Dataverse
46
46
47
-
If your environment includes Dataverse, create a custom `Debug Logs` table to capture diagnostic information. This approach works well for ad-hoc troubleshooting and audit trails.
47
+
To capture diagnostic information if your environment includes Dataverse, create a custom `Debug Logs` table. This approach works well for ad-hoc troubleshooting and audit trails.
48
48
49
49
### Create the Debug Logs table
50
50
51
-
1. In [Power Apps](https://make.powerapps.com), go to **Tables** and create a new table named `Debug Logs`.
51
+
1. In [Power Apps](https://make.powerapps.com), go to **Tables**, and create a new table that's named `Debug Logs`.
52
52
1. Add the following columns:
53
53
-`Title`: A label for the log entry.
54
54
-`UserEmail`: The email of the user.
55
55
-`Timestamp`: When the event occurred.
56
56
-`Payload`: Additional data in JSON format.
57
-
-Add other columns as needed for your scenario (for example, `CartCount`, `ScreenName`).
57
+
-Other columns as necessary for your scenario (for example, `CartCount`, `ScreenName`).
58
58
59
59
### Example: Write a debug record to Dataverse
60
60
61
-
Use a guarded [Patch](/power-platform/power-fx/reference/function-patch) call to write records only when a debug query string parameter is present:
61
+
Use a guarded [Patch](/power-platform/power-fx/reference/function-patch) call to write records only if a debug query string parameter is present:
62
62
63
63
```powerfx
64
64
If(Param("debug") = "true",
@@ -78,26 +78,26 @@ If(Param("debug") = "true",
78
78
79
79
### Run the app in debug mode
80
80
81
-
To enable debug logging, add `&debug=true` to the app URL. For more information about query string parameters, see [Param function](/power-platform/power-fx/reference/function-param).
81
+
To enable debug logging, add `&debug=true` to the app URL. For more information about query string parameters, see [Launch and Param functions](/power-platform/power-fx/reference/function-param).
82
82
83
-
After reproducing the issue, open the `Debug Logs` table in Dataverse to review the captured records.
83
+
After you reproduce the issue, open the `Debug Logs` table in Dataverse to review the captured records.
84
84
85
85
> [!NOTE]
86
-
> Remove or disable debug logging before you deploy the app broadly. Periodically delete old log entries to manage storage.
86
+
> Remove or disable debug logging before you deploy the app broadly. To manage storage, periodically delete old log entries.
87
87
88
88
## Write debug records to SharePoint
89
89
90
90
For lightweight environments without Dataverse, use a [SharePoint](/connectors/sharepointonline/) list to capture debug information.
91
91
92
92
### Create the debug list
93
93
94
-
1. In SharePoint, create a new list named `AppDebugLogs`.
94
+
1. In SharePoint, create a list that's named `AppDebugLogs`.
95
95
1. Add the following columns:
96
-
-`Title`: A label for the log entry.
97
-
-`UserEmail`: The email of the user.
98
-
-`Timestamp`: When the event occurred.
99
-
-`Payload`: Additional data in JSON format.
100
-
-Add other columns as needed for your scenario.
96
+
-`Title`: A label for the log entry
97
+
-`UserEmail`: The email address of the user
98
+
-`Timestamp`: When the event occurred
99
+
-`Payload`: Additional data in JSON format
100
+
-Other columns as necessary for your scenario.
101
101
102
102
### Example: Write a debug record to SharePoint
103
103
@@ -117,11 +117,11 @@ If(Param("debug") = "true",
117
117
```
118
118
119
119
> [!NOTE]
120
-
> SharePoint lists have storage limits. Regularly remove old entries to prevent the list from growing too large.
120
+
> SharePoint lists have storage limits. To prevent the list from growing too large, regularly remove old entries.
121
121
122
122
## Create an on-screen diagnostics panel
123
123
124
-
For immediate feedback during testing, create a diagnostics panel that displays debug information directly in the app. This approach is useful when you need to see values in real time.
124
+
For immediate feedback during testing, create a diagnostics panel that displays debug information directly in the app. This approach is useful if you have to see values in real time.
125
125
126
126
### Collect debug data
127
127
@@ -142,7 +142,7 @@ If(
142
142
143
143
### Add a text control to display traces
144
144
145
-
Add a text control to the screen that shows the collected traces. Set its**Visible** property so it only appears in debug mode.
145
+
Add a text control to the screen that shows the collected traces. Set the**Visible** property of the text control so that the control appears only in debug mode.
146
146
147
147
#### Control properties
148
148
@@ -157,7 +157,7 @@ Add a text control to the screen that shows the collected traces. Set its **Visi
157
157
158
158
This configuration displays a scrollable list of debug messages that you can copy and analyze outside the app.
159
159
160
-
#### Example YAML for the text control
160
+
#### Example YAML as the text control
161
161
162
162
If you're using Power Apps Studio's YAML view:
163
163
@@ -179,16 +179,16 @@ If you're using Power Apps Studio's YAML view:
179
179
```
180
180
181
181
> [!IMPORTANT]
182
-
> Remove or hide the diagnostics panel before you deploy the app to end users. Users who open the app by using the debug parameter shouldn't see internal diagnostic information.
182
+
> Remove or hide the diagnostics panel before you deploy the app to users. Users who open the app by using the debug parameter shouldn't see internal diagnostic information.
183
183
184
184
## Best practices for alternative debugging
185
185
186
-
Follow these guidelines when using alternative debugging approaches:
186
+
If you use an alternative debugging approach, follow these guidelines:
187
187
188
188
- *Guard debug controls*: Use query string parameters (`Param("debug") = "true"`) or role checks to display debug features only during testing.
189
-
- *Clean up before deployment*: Remove debug controls, logging calls, and diagnostic panels before broad deployment.
190
-
- *Manage log storage*: For Dataverse or SharePoint logging, periodically delete old entries to manage storage.
191
-
- *Use meaningful labels*: Include descriptive titles such as "BeforeSubmit" or "OnVisible_OrderScreen" to make logs easier to analyze.
189
+
- *Clean up before deployment*: Remove debug controls, logging calls, and diagnostic panels before you run a broad deployment.
190
+
- *Manage log storage*: To manage storage for Dataverse or SharePoint logging, periodically delete old entries.
191
+
- *Use meaningful labels*: To make logs easier to analyze, include descriptive titles such as "BeforeSubmit" or "OnVisible_OrderScreen".
192
192
- *Include context*: Log the user email, screen name, and relevant data values so you can correlate entries across sessions.
0 commit comments