You can monitor activity and alert on issues and usage for your PowerSync Cloud instance(s):Documentation Index
Fetch the complete documentation index at: https://powersync-docs-logs-search.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
- Monitor Usage: View time-series and aggregated usage data with Usage Metrics
- Monitor Service and Replication Activity: Track your PowerSync Service and replication logs with Instance Logs
-
Configure Alerts: Set up alerts for connection or replication issues or usage activity *
- Includes Issue Alerts and/or Usage Alerts
- Alert Notifications: Set up Email notifications or Webhooks to report events (like issue or usage alerts) to external systems *
Investigating replication lag specifically? See Replication Lag for what it is, how to monitor it, and common causes.
Summary of Feature Availability (by PowerSync Cloud Plan)
Monitoring and alerting functionality varies by PowerSync Cloud plan. This table provides a summary of availability:| Feature | Free | Pro | Team & Enterprise |
|---|---|---|---|
| Usage Metrics | Available | Available | Available |
| Instance Logs | Available | Available | Available |
| Log retention period | 24 hours | 7 days | 30 days |
| Issue Alerts | Available | Available | Available |
| Usage Alerts | Not available | Not available | Available |
| Alert Notifications | - Email - Webhooks | - Email - Webhooks |
Self-hosting PowerSyncSimilar monitoring and alerting functionality is planned for PowerSync Open Edition users and Enterprise Self-Hosted customers.For Open Edition users, alerting APIs are currently available in an early access release. For Enterprise Self-Hosted customers we are planning a full alerting service that includes customizable alerts and webhook integrations.Until this is available, please chat to us on our Discord to discuss your use case or any questions.
Usage Metrics
View time-series and aggregated usage data for your PowerSync instance(s), including storage size, concurrent connections, and synced data and operations. This data lets you monitor activity, spot patterns or spikes, and budget while tracking your position within our Cloud pricing plans.View Usage Metrics
Access usage metrics in the PowerSync Dashboard. Select your project and instance and go to the Metrics view:
- Filter options: data by time range.
- Granularity: See data in a daily, hourly or minute granularity.
- Aggregates: View and copy aggregates for each usage metric.
This usage data is also available programmatically via APIs in an early access release. Chat to us on our Discord if you require details.
Instance Logs
You can review logs for your PowerSync instance(s) to troubleshoot replication or sync service issues. Logs capture activity from the PowerSync Service and Replicator processes.- Service/API logs: Reflect sync processes from the PowerSync Service to clients.
- Replicator logs: Reflect replication activity from your source database to the PowerSync Service.
AvailabilityThe log retention period varies by plan:
- Free plan: Logs from the last 24 hours
- Pro plan: Logs from the last 7 days
- Team & Enterprise plans: Logs from the last 30 days
View Instance Logs
Access instance logs through the PowerSync Dashboard. Select your project and instance and go to the Logs view:
- Log Type: Switch between API logs (from the PowerSync Service) and Replication logs.
- Log Levels: Show or hide
Info,Error,Warn, andDebugentries. - Time Range: Limit results to a relative window (last 15 minutes, last hour, etc.) or a custom range. The available window depends on your plan’s retention period.
- Sort Order: Sort by newest or oldest first.
- Display Options: Show metadata pills on each entry, show stack traces for errors, and tail logs in real time.
Search and Filter Logs

alias:value filters. Type a query and the results update as you type.
Free-Text Search
Type bare words to match anywhere in the raw log entry. Matching is case-insensitive, and every word must match (AND):Field Filters
Usealias:value to filter on a specific structured field. Unlike free-text search, a field filter only matches the named field, not the rest of the log entry. Repeating the same alias matches any of the listed values (OR within a field, AND across fields):
error and lag keep a short form because their underlying paths are awkward to type. You can also type the short aliases shown in parentheses; they are normalised to the canonical name on submit.
| Alias | Field | Description |
|---|---|---|
user_id (user) | user_id | The authenticated user ID for the sync session. |
client_id (client) | client_id | The client device ID. |
rid (request) | rid | The request ID. Matches a started or complete entry. |
error | error_code | A specific PSYNC error code (see Error Codes). |
close_reason (reason) | close_reason | Why the sync session closed. |
| Alias | Field | Description |
|---|---|---|
lag | replication_lag | Replication lag in seconds. Used with a numeric comparison (see below). |
Numeric Comparisons
Thelag filter accepts >, >=, <, <=, and =:
lag:>5 lag:<10 is rejected.
Filtering on Other Fields
The Add filter button in the toolbar lists the aliases for the active log type. Log entries can contain many additional fields, and you can filter on any of them usingalias:value syntax directly in the search bar. For example:
- If the field matches one of the known aliases, the value is added as that filter.
- If not, the value is added as an unknown-field filter.
Combined Example
You can mix free-text terms, known aliases, and unknown fields in a single query:checkpoint and sync in the message, with user_id equal to 123 and a checkpoint field greater than or equal to 1224.
Export Logs
Click the Download button on the right side of the toolbar to export the currently visible log entries to a CSV file. The export reflects the active log type, time range, log levels, and search query, so you can narrow the result set before downloading. The CSV uses fixed columns for the most useful fields and collapses anything else into a trailingmetadata JSON column:
| Column | Description |
|---|---|
timestamp | ISO 8601 timestamp of the entry. |
level | Log level (info, error, warn, debug). |
message | Formatted log message. |
user_id | Authenticated user ID (API logs). |
client_id | Client device ID (API logs). |
rid | Request ID (API logs). |
error_code | PSYNC error code if the entry has one. |
close_reason | Close reason for sync session entries. |
metadata | JSON object containing every other top-level field on the entry. |
powersync-logs-<instance-id>-<timestamp>.csv where <timestamp> is the export time in UTC.
The export only includes entries currently loaded in the view. If you have not scrolled to load more entries with Load More, those entries are not included in the CSV.
Correlating Sync Sessions
To find a specific user’s session in the API logs, search for theiruser_id:
- Sync stream started: logged when the client connects. Fields include
user_id,client_id,app_metadata(if set),client_params,user_agent, andrid(request id). - Sync stream complete: logged when the session ends. Fields include
user_id,client_id,app_metadata(if set),operations_synced,operation_counts(broken down byput,remove,move,clear),data_synced_bytes,data_sent_bytes,stream_ms(session duration),close_reason, andrid.
rid, so you can match a started/complete pair for a single session by searching for it:
Custom Metadata in Sync Logs
Custom metadata in sync logs allows clients to attach additional context to their PowerSync connection for improved observability and analytics. This metadata appears in the Service/API logs, making it easier to track, debug, and analyze sync behavior across your app. For example, you can tag connections with app version, feature flags, or business context.How to Use Custom Metadata
You can specify application metadata when callingPowerSyncDatabase.connect(). To update the metadata, reconnect with new metadata values.
- JavaScript/React Native/Node.js/Capacitor
- Dart/Flutter
- Kotlin
- Swift
- .NET
- Rust
Version compatibility: This feature requires JavaScript/Web SDK v1.30.0+, React Native SDK v1.28.0+, Node.js SDK v0.15.0+, or Capacitor SDK v0.2.0+, and PowerSync Service v1.17.0+.
View Custom Metadata in Logs
Custom metadata appears in the Service/API logs section of the PowerSync Dashboard. Navigate to your project and instance, then go to the Logs view. The metadata is included in Sync stream started and Sync stream complete log entries.Make sure the Metadata checkbox is enabled in the logs view to see custom metadata in log entries.
-
Keep metadata values concise.
app_metadatais limited to 20 keys, with each string value capped at 100 characters. - Avoid including sensitive information in metadata as it will appear in logs.
- Metadata is set per connection. Reconnect with new metadata when user context or app state changes (e.g., feature flags).
Issue Alerts
Issue alerts capture potential problems with your instance, such as connection or replication issues.Availability
- Issue alerts are available on all Cloud plans.
Configure Issue Alerts
Issue alerts are set up per instance. To set up a new alert, navigate to the Alerts section in the PowerSync Dashboard and click Create Issue Alert. When creating or editing an issue alert, you can configure:- Alert Name: Give your alert a descriptive name to help identify it
-
Issue Type: Select the type of issue to monitor from the dropdown:
- Database Connection Issue: Trigger when there is a connection problem
- Replication Issue: Trigger when there is an issue with the replication process
-
Severity Levels: Select which severity levels should trigger this alert:
- Warning: For non-critical issues
- Fatal: For critical issues that require immediate attention
Usage Alerts
Usage alerts trigger when specific usage metrics exceed a defined threshold. This helps with troubleshooting usage spikes, or unexpected usage activity.AvailabilityUsage alerts are available on Team and Enterprise plans.
Configure Usage Alerts
Usage alerts are set up per instance. Navigate to the Alerts section in the PowerSync Dashboard and click Create Usage Alert. When creating or editing a usage alert, you can configure:- Alert Name: Give your alert a descriptive name to help identify it
-
Metric: Select from the following usage metrics to monitor:
- Data Synced
- Data Replicated
- Operations Synced
- Operations Replicated
- Peak Concurrent Connections
- Storage Size
These metrics correspond to the data shown in the Usage Metrics workspace and align with the PowerSync Service parameters outlined in our pricing. - Window: The number of minutes to look back when evaluating usage. All usage data points within this time window are included when determining if the configured threshold has been crossed
-
Aggregation: Select how to aggregate all data points within the window before comparing to the threshold:
- Avg: Calculate the average of all values
- Max: Use the highest value
- Min: Use the lowest value
- Condition: Set whether the alert triggers when usage goes Above or Below the specified threshold
- Threshold Value: The numeric limit for the selected metric (in bytes for size-based metrics; count for all other metrics)
Alert Notifications
Set up notification rules to be informed of issue or usage alerts, as well as deploy state changes. PowerSync provides multiple notification methods that trigger both when an alert becomes active and when it returns to normal (indicating the monitored conditions are back within acceptable thresholds).- Email Rules: Send alerts directly to your email address
- Webhooks: Notify external systems and services
Availability
- Email Rules: Available on all plans (Free, Pro, Team and Enterprise)
- Webhooks: Available on Pro, Team and Enterprise plans
Email Rules
Email rules allow you to receive alerts directly to your email address when specific events occur in PowerSync.Set Up Email Rules
Navigate to the Alerts section in the PowerSync Dashboard and scroll down to the Notification Rules section. Click Create Email Rule to set up email notifications. When creating or editing an email rule, you can configure:- Recipient Email: Specify the email address that will receive the notifications (required)
-
Event Triggers: Select one or more of the following events to trigger the email notification:
- Usage alert state change: Fired when a usage alert changes between ‘monitoring’ and ‘alerting’ (a threshold has been crossed)
- Issue alert state change: Fired when an issue alert changes between ‘monitoring’ and ‘alerting’ (the instance has active issues)
- Deploy state change: Fired when an instance deploy starts, completes or fails. This includes deprovisioning an instance
- Enabled: Toggle to control whether the email rule is active
Webhooks
Webhooks enable you to notify external systems when specific events occur in PowerSync.Set Up Webhooks
Navigate to the Alerts section in the PowerSync Dashboard and scroll down to the Notification Rules section. Click Create Webhook Rule to set up webhook notifications. When creating or editing a webhook rule, you can configure:-
Webhook Endpoint (URL): Define the endpoint that will receive the webhook request (starting with
https://) (required) -
Event Triggers: Select one or more of the following events to trigger the webhook:
- Usage alert state change: Fired when a usage alert changes between ‘monitoring’ and ‘alerting’ (a threshold has been crossed)
- Issue alert state change: Fired when an issue alert changes between ‘monitoring’ and ‘alerting’ (the instance has active issues)
- Deploy state change: Fired when an instance deploy starts, completes or fails. This includes deprovisioning an instance
- Enabled: Toggle to control whether the webhook rule is active
- Retries: Configure the number of retry attempts for failed webhook deliveries
After creating a webhook, a secret is automatically generated and copied to your clipboard. Store this secret since you’ll need it to verify the webhook request signature.
Webhook Signature Verification
Every webhook request contains anx-journey-signature header, which is a base64-encoded HMAC (Hash-based Message Authentication Code). To verify the request, you need to compute the HMAC using the shared secret that was generated when you created the webhook, and compare it to the value in the x-journey-signature header.
JavaScript Example: