-
Notifications
You must be signed in to change notification settings - Fork 12
Architecture and Costs
The solution uses various components in Azure to operate. Here's what's used, the expected performance tiers, and rough running costs. For the data it can collect, see What data is collected.
| Element | Description | Expected Performance Tiers |
|---|---|---|
| Azure App Service (Windows) + service plan – recommended. | Used to host the importing web-jobs and the ASP.Net site for calls notifications (and administration site). | B1-S2. Production environments need at least 3.5GB RAM (B2 tiers) Pricing: https://azure.microsoft.com/en-us/pricing/details/app-service/windows/ |
| Azure SQL Server – recommended | Endpoint for SQL database. | n/a – costs are done by database. |
| Azure SQL Database – recommended | Single source of reporting data. Usually this is the component that needs to be scaled when dataset requirements grow. | 10-50 DTUs without enhanced usage profiling enabled. 50-100 DTUs if enhanced usage profiling is optionally enabled (see below). Pricing: https://azure.microsoft.com/en-us/pricing/details/azure-sql-database/single/ |
| Azure Cache for Redis – required. | App caching for tokens and cognitive services lookups. | C0 Basic Pricing: https://azure.microsoft.com/en-us/pricing/details/cache/ |
| Language Cognitive Service – optional | Used for language, keyword, and sentiment detection. | Standard Pricing: https://azure.microsoft.com/en-us/pricing/details/cognitive-services/language-service/#pricing |
| Service Bus – optional; required only for the Teams Calls import (can be disabled in the installer otherwise). | Queues call notifications asynchronously. Authenticated with Entra ID RBAC — no SAS keys. | Basic Pricing: https://azure.microsoft.com/en-us/pricing/details/service-bus/#pricing |
| Key Vault – required. | Stores the runtime account's Graph app secret, read by the importer at run time. | Free - https://azure.microsoft.com/en-us/products/key-vault |
| Storage | Used for log & table storage if needed, and for storing any PowerShell SQL extensions needed in blob storage. | Pay-as-you-go. Normally zero costs unless detailed logging is turned on. https://azure.microsoft.com/en-gb/pricing/details/storage/blobs/ |
| Automation Account | Used to run enhanced usage profiling if wanted/enabled separately. | Likely free – the first 500 minutes per month are free. Unless datasets are very large, it’s common to not need any more. https://azure.microsoft.com/en-us/pricing/details/automation/ |
Total estimated costs expected for a medium sized environment (20,000 users), for 1 year of data collection: €170/month approximately (indicative only — verify current pricing for your region and scale).
This assumes the minimum recommended tiers in the table above (roughly a B-series App Service, a ~50-DTU SQL database and a C0 Basic Redis) and excludes the optional components (Cognitive Services, Automation). The App Service plan and SQL database dominate the cost, and the SQL tier is the main thing you scale up as the dataset grows.
Expected data-range for a medium-sized environment:
- 10,000 hits & audit events daily.
- Up to 1000 teams.
- Up to 20,000 users.
- Up to 1 year of data-collection. Longer retention rates will require higher SQL performance tiers.
Some components can be moved out of Azure; the app-service and the SQL database if needed, but we recommend keeping it in Azure so the automatic installer update process will work with the architecture.

- Home
- What data is collected
- The web portal
- Licence activity
- Copilot data & stats
- Architecture & costs
- App registrations setup
- Install with the installer
- Manual installation
- Private endpoints (optional)
- Certificate authentication (optional)
- Enable CSP for AITracker
- Verify the deployment
- Legacy SPO web setup