> For the complete documentation index, see [llms.txt](https://docs.aohwv.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aohwv.dev/features/monitoring.md).

# Monitoring

CloudSync provides real-time visibility into your identity synchronization operations. This guide covers how to monitor sync status, interpret logs, and track changes.

## Dashboard Overview

The main dashboard gives you an at-a-glance view of system health:

```
┌─────────────────────────────────────────────────────────────────┐
│  CloudSync Dashboard                                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────┐│
│  │   5,000     │  │    250      │  │    150      │  │  0.02%  ││
│  │  Total Users│  │ Total Groups│  │ Synced Today│  │Error Rate││
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────┘│
│                                                                 │
│  Last Sync: 2 hours ago | Next Sync: in 4 hours                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

### Key Metrics

| Metric           | Description                     | Healthy Range          |
| ---------------- | ------------------------------- | ---------------------- |
| **Total Users**  | Active users in the system      | Matches HR count       |
| **Total Groups** | Groups being synced             | Matches expected count |
| **Synced Today** | Changes processed in last 24h   | Varies by org          |
| **Error Rate**   | Percentage of failed operations | < 1%                   |

## Real-Time Sync Status

### Viewing Active Syncs

{% stepper %}
{% step %}
Navigate to Status → Active Syncs to see currently running sync operations.
{% endstep %}

{% step %}
Click an active sync to view detailed information such as per-user processing status, current operation (create/update/skip), and any warnings or errors as they occur.
{% endstep %}
{% endstepper %}

**Active Sync Display:**

| Field        | Description                           |
| ------------ | ------------------------------------- |
| **Job ID**   | Unique identifier for the sync run    |
| **Type**     | Full, Incremental, or Delta           |
| **Started**  | When the sync began                   |
| **Progress** | Percentage complete with progress bar |
| **ETA**      | Estimated time remaining              |

### Live Progress

Watch sync progress in real-time:

```
Sync Progress: Daily Incremental Sync
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67%

Processed: 1,005 of 1,500 users
Duration: 4m 32s
Estimated completion: ~2 minutes
```

## Sync History

### Accessing History

{% stepper %}
{% step %}
Go to Status → Sync History to view completed sync operations.
{% endstep %}

{% step %}
Use the History table and filters to locate specific runs or trends.
{% endstep %}
{% endstepper %}

### History Table

| Column        | Description               |
| ------------- | ------------------------- |
| **Date/Time** | When sync completed       |
| **Type**      | Sync type executed        |
| **Duration**  | Total time taken          |
| **Processed** | Records processed         |
| **Created**   | New users/groups created  |
| **Updated**   | Existing records modified |
| **Skipped**   | Records with no changes   |
| **Failed**    | Records that failed       |
| **Status**    | Overall job status        |

### Filtering History

Use filters to find specific syncs:

* **Date Range**: Select start and end dates
* **Status**: Success, Warning, Failed
* **Type**: Full, Incremental, Delta
* **Source**: Filter by HR system

### Exporting History

{% stepper %}
{% step %}
Set your desired filters.
{% endstep %}

{% step %}
Click Export (top right).
{% endstep %}

{% step %}
Choose format: CSV or JSON.
{% endstep %}

{% step %}
Download the report.
{% endstep %}
{% endstepper %}

## Provisioning Logs

Detailed logs show exactly what happened during each sync.

### Accessing Logs

{% stepper %}
{% step %}
Go to Status → Provisioning Logs.
{% endstep %}

{% step %}
Or click a sync in History to see its logs.
{% endstep %}
{% endstepper %}

### Log Entry Structure

Each log entry contains:

```
[2025-12-18 10:00:15] INFO - User john.doe@company.com
  Operation: UPDATE
  Source: Workday HR
  Changes:
    - department: Engineering → Product
    - manager: jane.smith → bob.jones
  Result: SUCCESS
```

### Log Levels

| Level       | Icon | Description                         |
| ----------- | ---- | ----------------------------------- |
| **INFO**    | ℹ️   | Normal operations                   |
| **WARNING** | ⚠️   | Non-critical issues                 |
| **ERROR**   | ❌    | Failed operations                   |
| **DEBUG**   | 🔍   | Detailed diagnostics (when enabled) |

### Common Log Entries

**Successful Create:**

```
[INFO] Created user sarah.wilson@company.com in Entra ID
  EmployeeId: E12345
  Department: Marketing
  Groups: Marketing-Team, All-Employees
```

**Successful Update:**

```
[INFO] Updated user mike.brown@company.com
  Changed: title (Developer → Senior Developer)
  Changed: department (Engineering → Platform)
```

**Skip (No Changes):**

```
[INFO] Skipped user emma.davis@company.com - no changes detected
```

**Warning:**

```
[WARNING] User alex.chen@company.com - manager not found
  Expected manager: unknown.user@company.com
  Action: User synced without manager assignment
```

**Error:**

```
[ERROR] Failed to update user pat.miller@company.com
  Error: GraphAPI rate limit exceeded
  Action: Queued for retry
```

## User Detail View

Track sync status for individual users.

### Finding a User

{% stepper %}
{% step %}
Go to Users → Search.
{% endstep %}

{% step %}
Enter name, email, or employee ID.
{% endstep %}

{% step %}
Click the user to view details.
{% endstep %}
{% endstepper %}

### User Sync Status

```
User: John Doe (john.doe@company.com)
─────────────────────────────────────
Source: Workday HR
Status: ✅ In Sync
Last Updated: 2 hours ago

Sync History:
┌────────────────┬───────────┬────────────────┐
│ Date           │ Operation │ Changes        │
├────────────────┼───────────┼────────────────┤
│ Dec 18, 10:00  │ Update    │ title          │
│ Dec 15, 09:00  │ Update    │ department     │
│ Nov 1, 08:00   │ Create    │ initial sync   │
└────────────────┴───────────┴────────────────┘
```

### Status Indicators

| Status       | Icon | Meaning                 |
| ------------ | ---- | ----------------------- |
| **In Sync**  | ✅    | Data matches source     |
| **Pending**  | 🕐   | Changes waiting to sync |
| **Warning**  | ⚠️   | Synced with issues      |
| **Error**    | ❌    | Sync failed             |
| **Disabled** | ⏹️   | Excluded from sync      |

## Alerts and Notifications

### Setting Up Alerts

{% stepper %}
{% step %}
Go to Settings → Notifications.
{% endstep %}

{% step %}
Configure alert triggers.
{% endstep %}
{% endstepper %}

Available triggers:

| Trigger             | Description                        |
| ------------------- | ---------------------------------- |
| **Sync Failed**     | Entire sync job failed             |
| **High Error Rate** | Error rate exceeds threshold       |
| **No Sync 24h**     | No successful sync in 24 hours     |
| **Large Change**    | Unusual number of changes detected |

### Alert Channels

Configure where to receive alerts:

* **Email**: Send to specific addresses
* **Slack**: Post to a Slack channel (if integrated)
* **Teams**: Post to a Teams channel (if integrated)

### Alert History

View past alerts at Status → Alerts:

```
Recent Alerts:
─────────────────────────────────────
⚠️ Dec 18, 08:00 - High error rate (5.2%)
   Sync: Morning Incremental
   Resolved: Dec 18, 08:15

❌ Dec 15, 02:00 - Sync failed
   Sync: Nightly Full
   Cause: HR API timeout
   Resolved: Dec 15, 02:30 (manual retry)
```

## Graph Visualization

Visualize identity relationships in the graph view.

### Accessing the Graph

{% stepper %}
{% step %}
Go to Insights → Identity Graph.
{% endstep %}

{% step %}
Explore relationships between users, groups, and departments.
{% endstep %}
{% endstepper %}

### Navigation

* **Zoom**: Mouse wheel or pinch
* **Pan**: Click and drag
* **Select**: Click a node
* **Expand**: Double-click to show connections

### Node Types

| Node          | Color  | Represents                  |
| ------------- | ------ | --------------------------- |
| 👤 User       | Blue   | Individual user             |
| 👥 Group      | Green  | Security/distribution group |
| 🏢 Department | Orange | Organizational unit         |
| 👔 Manager    | Purple | Reporting relationship      |

### Use Cases

* Find orphaned users (no group membership)
* Visualize reporting chains
* Identify circular group memberships
* Audit department structures

## Performance Insights

### Sync Performance Trends

View trends at Insights → Performance:

* Sync duration over time
* Records processed per sync
* Error rate trends
* API call efficiency

### Identifying Issues

**Long Sync Duration:**

* Check for large batch sizes
* Review API rate limits
* Consider incremental sync

**High Error Rate:**

* Review error logs for patterns
* Check source data quality
* Verify API credentials

## Best Practices

### Regular Monitoring

| Frequency   | Action                                   |
| ----------- | ---------------------------------------- |
| **Daily**   | Check dashboard for alerts               |
| **Weekly**  | Review sync history and trends           |
| **Monthly** | Audit error patterns, optimize schedules |

### Key Indicators to Watch

1. **Error rate** should stay below 1%
2. **Sync duration** should be consistent
3. **Pending changes** should clear after each sync
4. **No unexpected large deletions**

### Responding to Issues

{% stepper %}
{% step %}
Check alerts immediately when received.
{% endstep %}

{% step %}
Review detailed logs for affected records.
{% endstep %}

{% step %}
Identify root cause (source data, API, configuration).
{% endstep %}

{% step %}
Take corrective action.
{% endstep %}

{% step %}
Monitor next sync to confirm resolution.
{% endstep %}
{% endstepper %}

## Related Topics

* [Scheduling Syncs](/features/scheduling.md) - Configure sync schedules
* [Data Mapping](/features/data-mapping.md) - Configure field mappings
* Troubleshooting - Common problems


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aohwv.dev/features/monitoring.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
