Skip to content

Application Telemetry and Audit Logging

Brief Connect logs key application events to Azure Application Insights for auditing and troubleshooting purposes. This telemetry provides visibility into user actions and system activity, supporting both operational monitoring and compliance requirements.

Accessing Application Insights

Application Insights is a service that provides monitoring and analytics for Brief Connect. It helps track performance, availability, usage, and errors. To access Application Insights:

  1. Log in to the Azure portal and navigate to the resource group BriefConnect-DEV (or other target environments).
  2. Select the App Insights resource BriefConnectDEV-AI from the list of resources.
  3. On the overview page, you can see various metrics and charts that show the health and activity of the app. You can also customize the dashboard by adding or removing tiles, changing the time range, or applying filters.
  4. To view the detailed logs, click on Logs from the left menu. This will open a query editor where you can write and run queries using the Kusto Query Language (KQL).

image.png

Audit Model

The application uses a structured audit model to capture significant user and system events.

Event Types

Event Type Description
UserLogin User signed in to the application
UserLogout User signed out from the application
UserCreatedRecord User created a new record (including Copy and Superseded)
UserUpdatedRecord User updated an existing record
UserAccessedRecord User viewed a record
UserUpdatedRecordAudit User added comment to record audit
UserAccessedRecordAudit User viewed the audit trail for a record
UserExportedRecordAudit User exported the audit trail for a record in CSV
UserRequestedPdfPack User requested a PDF pack for a record
UserRequestedExportPdfPack User requested export of multiple records as a PDF pack. Separate event logged registered for each record.
UserUpdatedUserSettings User changed their personal settings
UserAccessedRecordDocuments User loaded a list of documents attached to a record

Telemetry Data Structure

All application audit events logged to customEvents table in Application Insights.

Table Columns available in Azure Application Insights customEvents table

Column Name Description
timestamp The date and time when the event was logged
name The name of the event type (e.g., UserLogin)
customDimensions A dynamic object containing custom key-value pairs for the event (see below)
customDimensions.UserId The unique identifier of the user performing the action
customDimensions.RecordId The identifier of the affected record (if applicable)
customMeasurements A dynamic object containing custom numeric measurements for the event
operation_Id The unique identifier for the operation
operation_Name The name of the operation
cloud_RoleName The role name of the cloud service
user_Id The identifier of the user (if available)
session_Id The identifier of the session
appId The Application Insights application ID
appName The name of the application
client_Type The type of client (e.g., Browser, PC)
client_Browser The browser used (if applicable)
client_Model The device model (if applicable)
client_OS The operating system of the client
_ResourceId The Azure resource ID
_SubscriptionId The Azure subscription ID

These columns provide detailed context for each audit event and support advanced querying and analysis.

Storage and Retention

All telemetry events are sent to Azure Application Insights, where they are stored and can be queried for monitoring, troubleshooting, and audit purposes. Retention policies are managed in Azure and can be adjusted to meet compliance requirements.

Querying Logs

Audit logs can be accessed via the Azure Portal using Application Insights Analytics (Kusto Query Language). This enables administrators to review user activity, investigate issues, and support compliance audits.

Querying Audit Events

Example KQL query to load audit events:

customEvents
| project timestamp, EventName = name, UserId = customDimensions.UserId, RecordId = customDimensions.RecordId

image.png

Querying Application Traces

You can use the traces table to view regular log records. For example, to see traces from the last 24 hours:

traces
| where timestamp > ago(24h)
| order by timestamp desc

Querying Exceptions

You can use the exceptions table to view exceptions that occurred in the application. For example, to see exceptions from the last 24 hours:

exceptions
| where timestamp > ago(24h)
| order by timestamp desc

Additional Query Options

You can also use other tables and functions to query different aspects of the application, such as: - requests - HTTP requests and their performance - dependencies - External service calls and dependencies - customEvents - Custom application events (including audit events) - availabilityResults - Availability test results

For more information about the schema and syntax of App Insights queries, see: https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/log-query-overview

To debug a specific issue or scenario, you can use the search feature to find and filter relevant events across all tables. You can also use the application map to visualize the dependencies and failures of the app. For more information about troubleshooting with App Insights, see: https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-troubleshoot-faq