---
title: "Apps Monitor - Technical Reference | CXTech"
canonical: "https://ai-docs.certero.com/space/CUP/167313411/Apps%20Monitor%20-%20Technical%20Reference%20%7C%20CXTech"
format: markdown
---
# Apps Monitor - Technical Reference
> **Module:** Certero for Enterprise ITAM > Apps Monitor
> **Codebase:** `Application Server\Website\CerteroWebApp\Controllers\Metered*.cs`
> **Database Schema:** `C_Data\AppsMonitor`
> **Version:** 8.8+
---
## Overview
Apps Monitor (AppsMon) is the application usage monitoring module of Certero for Enterprise ITAM. It tracks software usage across Windows endpoints to identify unused or underutilized software, supporting license optimization and cost reduction initiatives.
The module operates through the Certero Client Agent installed on Windows computers. The agent performs two key functions:
1. **File Scanning** - Discovers executable files (.exe) resident on computers
2. **File Metering** - Monitors actual execution of files by logged-on users
This dual approach provides both a complete inventory of potential software usage and actual usage data, enabling accurate identification of shelfware and optimization opportunities.
---
## Navigation
**Menu Path:** Main Menu → Apps Monitor → [Files | Computers | Users | Tags]
**Direct URL Patterns:**
- Files: `/CerteroWebApp/MeteredFile`
- Computers: `/CerteroWebApp/MeteredComputer`
- Users: `/CerteroWebApp/MeteredUser`
- Tags: `/CerteroWebApp/MeteredTag`
---
## Key Concepts
| Concept | Description |
| --- | --- |
| File Scanning | Weekly scan of Windows computers to detect all resident executable files and their paths |
| File Metering | Real-time capture of file execution events by logged-on users |
| Usage Period | Rolling 90-day window for usage data retention and percentage calculations |
| % Used | Percentage of days a file was used since first detection (max 90 days) |
| Original Filename | Built-in file property from vendor; helps identify renamed files |
| Raw Data | Complete dataset of individual usage events per day |
| Summary Data | Aggregated usage metrics (last used, % usage) per file/computer/user |
---
## Data Model
### Primary Entities
| Entity | Table | Description |
| --- | --- | --- |
| MeteredFile | `dbo.MeteredFile` | Master list of discovered executable files |
| MeteredComputer | `dbo.vwMeteredComputer` | Computers with Apps Monitor data |
| MeteredUser | `dbo.vwMeteredUser` | Users with associated file usage |
| MeteredTag | `dbo.MeteredTag` | Custom tags for organizing files |
| MeteredFileStatistics | `dbo.MeteredFileStatistics` | Usage statistics and calculations |
| MeteredFileUserDetail | `dbo.MeteredFileUserDetail` | User-level usage detail |
| MeteredFileComputerDetail | `dbo.MeteredFileComputerDetail` | Computer-level usage detail |
### Entity Relationships
```
MeteredFile (1) ←→ (N) MeteredFileComputerDetail
MeteredFile (1) ←→ (N) MeteredFileUserDetail
MeteredComputer (1) ←→ (N) MeteredFileComputerDetail
MeteredUser (1) ←→ (N) MeteredFileUserDetail
MeteredFile (N) ←→ (N) MeteredTag
```
### Data Views
| View | Purpose |
| --- | --- |
| `vwMeteredFile` | File data with aggregated properties |
| `vwMeteredComputer` | Computers with usage summary |
| `vwMeteredUser` | Users with usage summary |
| `vwMeteredTag` | Tags with file associations |
---
## User Interface
### Screen: Files
**Navigation:** Main Menu → Apps Monitor → Files
**Purpose:** Summary list of all discovered executable files across monitored Windows computers.
**Key Columns:**
| Column | Description |
| --- | --- |
| Filename | Name of the executable file |
| Original Filename | Vendor-defined filename property (may differ if renamed) |
| Description | File description from metadata |
| Company | Vendor/publisher name |
| Product Name | Associated product name from metadata |
| Computers | Count of computers where file exists |
| Users | Count of users who have executed the file |
| Last Run | Most recent execution date across all computers |
| % Used | Usage percentage over measurement period |
**Actions Available:**
| Action | UI Element | Result |
| --- | --- | --- |
| View Computer Usage | Click "View Details" → Utilization for Computers | Shows per-computer usage for selected file |
| View User Usage | Click "View Details" → Utilization for Users | Shows per-user usage for selected file |
| Expand Row | Click dropdown arrow on row | Shows version, path, and description details |
| Filter | Column header filters | Filters grid by criteria |
| Export | Toolbar export button | Exports data to Excel/CSV |
**Row Expansion Details:**
When expanding a file row, the following additional details are displayed:
- Version (all versions found)
- Path (all paths where file exists)
- Description (all descriptions found)
Note: Multiple values may appear in a single row as the grid groups by filename only.
---
### Screen: Computers
**Navigation:** Main Menu → Apps Monitor → Computers
**Purpose:** Computer-centric view of file usage data.
**Key Columns:**
| Column | Description |
| --- | --- |
| Computer Name | Name of the Windows computer |
| Files Used | Count of files with recorded usage |
| Last Inventory | Date of last file scan |
| Device Name | Name of device user logged on from (for RDS) |
**Actions Available:**
| Action | UI Element | Result |
| --- | --- | --- |
| View Files | Click "Files Used" count | Pivots to detailed file usage for that computer |
---
### Screen: Users
**Navigation:** Main Menu → Apps Monitor → Users
**Purpose:** User-centric view of file usage data.
**Key Columns:**
| Column | Description |
| --- | --- |
| Username | User account name |
| Files Used | Count of files executed by user |
| Last Run | Most recent file execution date |
**Actions Available:**
| Action | UI Element | Result |
| --- | --- | --- |
| View Files | Click "Files Used" count | Pivots to detailed file usage for that user |
---
### Screen: Tags
**Navigation:** Main Menu → Apps Monitor → Tags
**Purpose:** Custom tag management for organizing and categorizing files.
**Key Columns:**
| Column | Description |
| --- | --- |
| Tag Name | Custom tag identifier |
| Files | Count of files associated with tag |
---
## Business Logic
### File Scanning Process
**Trigger:** Scheduled by Certero Client Agent (default: weekly)
**Steps:**
1. Agent scans configured drives for executable files (.exe)
2. File metadata extracted (name, version, description, company, product)
3. Results uploaded to Endpoint Server
4. Data aggregated into MeteredFile table
5. Previous scan data retained for comparison
**Exceptions Applied:**
- System directories excluded (Windows, Program Files system components)
- Temporary files excluded (*.tmp, ~*)
- Remote support applications excluded (WebEx, Bomgar, Zoom)
**Outcome:** Complete inventory of executable files available on each computer.
---
### File Metering Process
**Trigger:** Real-time monitoring via mini-filter driver (cmflt.sys)
**Steps:**
1. Mini-filter driver intercepts file execution events
2. Event captured with timestamp, user context, file details
3. Data batched and uploaded to Endpoint Server (default: every 2 hours)
4. Usage statistics calculated and updated in database
**Data Captured:**
- File executed
- User who executed
- Computer where executed
- Device name (for remote sessions)
- Timestamp
**Outcome:** Continuous record of actual software usage.
---
### Usage Percentage Calculation
**Formula:**
```
% Used = (Days with recorded usage / Total days since first detection) × 100
```
**Constraints:**
- Maximum measurement period: 90 days
- Starts from first detection date if less than 90 days
**Example:**
- File discovered 30 days ago
- Used on 15 of those days
- % Used = (15 / 30) × 100 = 50%
---
## API Reference
### Endpoints
| Method | Endpoint | Description | Permission |
| --- | --- | --- | --- |
| GET | `/api/MeteredFile` | List metered files | MeteredFile.View |
| GET | `/api/MeteredFile/{id}` | Get specific file details | MeteredFile.View |
| GET | `/api/MeteredComputer` | List computers with usage | MeteredComputer.View |
| GET | `/api/MeteredUser` | List users with usage | MeteredUser.View |
| GET | `/api/MeteredTag` | List tags | MeteredTag.View |
| GET | `/api/MeteredFileDetail` | Get detailed file statistics | MeteredFile.View |
| GET | `/api/MeteredStatScale` | Get statistics scale data | MeteredFile.View |
### OData Query Support
All endpoints support standard OData query parameters:
- `$filter` - Filter results
- `$orderby` - Sort results
- `$top` / `$skip` - Pagination
- `$select` - Field selection
- `$expand` - Related entity expansion
---
## Configuration
### Enabling Apps Monitor
Apps Monitor must be enabled per-computer via Configuration Rules.
**Navigation:** Main Menu → Settings → Configuration Rules → [Rule Name] → Properties → Modules
**Steps:**
1. Navigate to Configuration Rules
2. Select or create a rule targeting desired computers
3. Click "Properties"
4. Under Modules, click "Enabled" against Apps Monitor
5. Click "Save"
6. Wait for agent to receive updated configuration
**Note:** License required. Unlicensed modules appear greyed out.
---
### Transient VM Configuration
For non-persistent VDI environments, additional configuration is required.
**Issue:** Transient VMs lose data on reboot before upload.
**Solution:** Configure more frequent data uploads or use persistent storage for agent data.
See: "How To Configure Apps Monitor for Transient Virtual Machines" in CUP documentation.
---
## Troubleshooting
### Issue: Computer not appearing in Apps Monitor
**Symptoms:**
- Computer has agent installed but not visible in Apps Monitor → Computers
- No file usage data for specific computer
**Cause:** Apps Monitor module not enabled for that computer's configuration rule.
**Resolution:**
1. Navigate to Main Menu → Settings → Configuration Rules
2. Identify rule targeting the affected computer
3. Verify Apps Monitor is enabled under Properties → Modules
4. If disabled, enable and save
5. Wait for agent to sync (up to 24 hours) or manually trigger sync
---
### Issue: File usage not being recorded
**Symptoms:**
- Files appear in scan but no usage data
- "Last Run" column shows no data
**Cause:**
- File may be in exception list
- Mini-filter driver not loaded
- Agent service not running
**Resolution:**
1. Check if file matches exclusion patterns (see File Scan & File Metering Exceptions)
2. Verify agent service is running: `services.msc` → Certero Agent
3. Check mini-filter status: `fltmc` command
4. Review agent logs: `C:\ProgramData\Certero\Agent\Logs\`
---
### Issue: % Used showing unexpected values
**Symptoms:**
- Usage percentage seems too high or too low
- Values don't match expected usage patterns
**Cause:** Misunderstanding of calculation basis.
**Resolution:**
1. Remember % Used is based on days since first detection, not 90 days
2. For recently discovered files, percentage is over shorter period
3. Check "First Detected" date to understand measurement window
4. Usage is per-user, per-computer - aggregate may differ from individual
---
### Issue: Data hashing enabled - cannot see file details
**Symptoms:**
- File details appear hashed/anonymized
- Cannot identify specific executables
**Cause:** Data hashing feature enabled for privacy compliance (v8.7+).
**Resolution:**
1. Data hashing is intentional privacy feature
2. Contact administrator to disable if business need exists
3. Hashing settings found in configuration rules
---
## Integration Points
### Dynamic Groups
Apps Monitor data can be used in Dynamic Group criteria:
- File Usage (RAW) - Individual usage events
- File Usage (Summary) - Aggregated usage metrics
**Use Case:** Create group of computers with unused software for license reclamation.
### Governance Filters
Usage criteria available in governance filters for policy enforcement.
### Reports
Usage data can be included in scheduled reports:
- Usage by file
- Usage by computer
- Usage by user
- Unused software identification
### Dashboards
Apps Monitor widgets available for dashboard configuration:
- Top used applications
- Unused software summary
- Usage trends
---
## Related Documentation
- [How to enable Apps Monitor using Configuration Rules | v8+](https://certero.atlassian.net/wiki/spaces/CUP/pages/128942141)
- [Apps Monitor - Understanding the Histogram | 8.8+](https://certero.atlassian.net/wiki/spaces/CUP/pages/118852244)
- [Apps Monitor - File Scan & File Metering Exceptions | 8.8+](https://certero.atlassian.net/wiki/spaces/CUP/pages/118655552)
- [Apps Monitor - Example Use Cases | 8.8+](https://certero.atlassian.net/wiki/spaces/CUP/pages/118852270)
- [How To Configure Apps Monitor for Transient VMs | v8.8+](https://certero.atlassian.net/wiki/spaces/CUP/pages/118917938)
---
## Technical Reference
### Key Files
| File | Purpose |
| --- | --- |
| `Controllers\MeteredFileController.cs` | Files screen controller |
| `Controllers\MeteredComputerController.cs` | Computers screen controller |
| `Controllers\MeteredUserController.cs` | Users screen controller |
| `Controllers\MeteredTagController.cs` | Tags screen controller |
| `Controllers\Api\MeteredFileController.cs` | Files API endpoint |
| `Controllers\Api\MeteredFileDetailController.cs` | File detail API |
| `Services\AppsMonitor\MeteredFileService.cs` | Business logic service |
| `ViewModels\AppsMonitor\DataGridPageViewModel.cs` | View model |
| `Models\AppsMonitor\FileQueryOptions.cs` | Query parameter model |
### Database Objects
| Object | Type | Purpose |
| --- | --- | --- |
| `dbo.MeteredFile` | Table | Master file records |
| `dbo.MeteredFileStatistics` | Table | Usage statistics |
| `dbo.MeteredTag` | Table | Custom tags |
| `dbo.vwMeteredFile` | View | Files with aggregated data |
| `dbo.vwMeteredComputer` | View | Computers with usage |
| `dbo.vwMeteredUser` | View | Users with usage |
| `dbo.vwMeteredTag` | View | Tags with associations |
### Permission Requirements
| Permission | Description |
| --- | --- |
| `MeteredFile.View` | View Files screen and data |
| `MeteredFile.Edit` | Modify file records |
| `MeteredComputer.View` | View Computers screen |
| `MeteredUser.View` | View Users screen |
| `MeteredTag.View` | View Tags screen |
| `MeteredTag.Edit` | Create/modify tags |
---
## Revision History
| Date | Author | Changes |
| --- | --- | --- |
| 2025-01-14 | CXTech | Initial technical reference created |