This commit is contained in:
2022-04-05 17:42:20 +00:00
parent b46ece91f4
commit 1daec7ce6d
3 changed files with 138 additions and 8 deletions

View File

@@ -1,3 +1,59 @@
# OPS-USER-NOTIFY-LOG
# User notification log
![THIS PAGE UNDER CONSTRUCTION](img/underconstruction.svg)
This form is used to view and troubleshoot [User notification subscription](home-notify-subscriptions.md) deliveries.
When an email or in-app notification is sent to a User it will be logged here.
## Authorization Roles required
This form is available to User's with the following [roles](ay-biz-admin-roles.md):
Full access
- System operations
Read only access
- Business administration
- Business administration - restricted
- System operations - restricted
## How to access User notification log
The User notification log form is accessed in the following ways:
- From the `Server operations` navigation pane `User notification log` item to open this form
## User notification log data table
The User notification log [data table](ay-start-form-data-tables.md) is a log of the last 90 days of User notification in-app and email deliveries both failed and successful and access to common data table [menu options](ay-start-form-data-tables.md#common-menu-options).
### 90 days
AyaNova automatically deletes User notification log entries older than 90 days.
### User notification log data table columns
#### Processed
Date and time that this delivery was processed by AyaNova.
#### Notification event
A description of the particular [User notification subscription](home-notify-subscriptions.md) event type triggering this notification.
#### Type
The AyaNova object type if any that is selected for this notification. Not all notifications have object types.
#### User
The AyaNova User who was the recipient of the notification.
#### Failed
A true/false value indicating the success of the delivery. Useful to filter this data table by only failed deliveries when troubleshooting.
#### Errors
The errors encountered making this notification delivery. They might be email related or AyaNova system related depending on the issue but in most cases will indicate some kind of problem with the email message being sent to this particular User.

View File

@@ -1,7 +1,81 @@
# Ops-profile
# Profiler
![THIS PAGE UNDER CONSTRUCTION](img/underconstruction.svg)
The Profiler form shows the internal performance of the AyaNova server API routes and database calls to help with technical support troubleshooting.
- primarily for tech support diagnosis in case of slowness
- only keeps last half hour of stats
- how to use: trigger slow operation, then go to this page right away and walk through looking for slowness take screenshot to provide tech support or give tech support a ops restricted login so they can view it themselves
Should any particular operation in AyaNova be excessively slow, this tool can help AyaNova technical support diagnose the source of the issue.
The information displayed on this form comes from a 3rd party tool and all text displayed is in the English language only.
## 30 minutes
The profiler tracks the most recent 30 minutes of activity only.
## Authorization Roles required
This form is available to User's with the following [roles](ay-biz-admin-roles.md):
Full access
- System operations
Read only access
- Business administration
- Business administration - restricted
- System operations - restricted
## How to access the Profiler
The Profiler form is accessed in the following ways:
- From the `Server operations` navigation pane `Profiler` item to open this form
## Profiler form
The Profiler form shows a table of the last 30 minutes of requests made to the server.
Each request can be clicked on to show an overview of the timing of each step of the operation from initial request to response.
### Main table columns
#### Name
This is the name of the AyaNova api route that is serving the incoming request.
#### Server
This will always be the local server
#### Started
This is the moment in time that the api request was received in UTC time zone.
#### Total duration
Shows the total time in milliseconds from the moment the request was received until the response was sent back to fulfil the request.
#### Request start
Unused.
#### Response start
Unused.
#### DOM Complete
Unused.
### Details form
Clicking on an API call listed in the Name column will open the details form showing the steps taken to process the request and the timing of each step.
This information is provided for technical support troubleshooting purposes only and we won't document it all here but essentially it shows the time taken by each step of the process to fulfil the request including database queries and AyaNova support will be looking for unusually slow steps in consultation with the AyaNova development department to diagnose the source of these unexpected problems.
## Troubleshooting process
If an operation in AyaNova is found to be unacceptably slow, technical support may request that you repeat the operation and then immediately go to this form to find the slow api method, click on it's Name and capture a screen shot of the details form for this request to send back to support to help determine the exact step where it slows down.
This provides technical support in consultation with AyaNova development department with a direction of inquiry and helps to eliminate a number of potential issues quickly to get to the actual issue at hand.
If appropriate, providing AyaNova technical support with a temporary read-only `Operations - restricted` role login account will enable them to examine the server logs and this form directly without the need to expose any other company business data.

View File

@@ -63,7 +63,7 @@ namespace AyaNova
{
options.RouteBasePath = "/profiler";
//in testing only ignorepaths was reliable and worked and docs say it prevents any profiling at all
options.IgnorePath("/auth").IgnorePath("/license").IgnorePath("/user").IgnorePath("/docs").IgnorePath("/cust");
options.IgnorePath("/auth").IgnorePath("/license").IgnorePath("/user").IgnorePath("/docs").IgnorePath("/cust").IgnorePath("/notify/hello").IgnorePath("/notify/new-count");
options.ResultsAuthorize = request =>
{
if (request.HttpContext.Items["AY_PROFILER_ALLOWED"] != null)