Technology

Azure logs without the analytics-tier decision.

Azure Monitor and Sentinel price the data you actively detect on, which pushes everything else into basic or archive tiers where investigating means restoring first. CtrlB keeps the full history in your own storage and searchable in place.

Your Azure subscriptionwesteurope
Activity logActivity log
Microsoft Entra IDMicrosoft Entra ID
Kubernetes ServiceKubernetes Service
Key VaultKey Vault

DIAGNOSTIC SETTINGS

Storage account
stcontosologs
storage account you already own
insights-logs/
Parquet
_ctrlb_index/
written in place

QUERIES ONLY

CtrlB query layer
no copy of your logs leaves the subscription
One tier
No archive to restore from
Entra ID
Sign-in logs kept in full
Your storage
Azure Blob you control
Years
Retention at storage pricing

One tier

The tier was picked before the question existed

Azure Monitor prices the data you actively detect on, so retention becomes a forecast: guess now which logs an incident will need in a year. Everything else lands in a tier that has to be restored before it can be read.

SigninLogs | where IPAddress == "203.0.113.9"Window: 18 months
Tiered retention1 / 18 months
Analyticsqueryable

priced per GB ingested

Basiclimited queries

no alerts, short interactive window

Archiverestore first

a search job before a search

the tier was chosen months before the question was asked

CtrlB on your storage account0 / 18 months
One tierqueryable

priced as objects in Blob storage, not as an analytics tier

No restore job between the question and the answer
The oldest month reads the same way as this morning
Turning a diagnostic setting on is no longer a budget decision
Azure Monitor & Sentinel

The tier you pick decides what history you can search.

Analytics-tier pricing forces a forecast before you know what an incident needs. Archive is cheap because it is not queryable — restoring a table adds hours to a question that should take minutes.

24-month retention · same diagnostic settings
activity · entra · resource logs
Analytics$$$instant KQL
Basic$$KQL only
Archive$4–12 h restore
today6 mo12 mo24 mo
archive tier · restore required
0 min before first query
investigation blocked
this morning · no restore
0.0 s same speed any day
indexed in your subscription
status quo · tiered ingest$$$ analytics forecast
CtrlB · blob storage pricingstorage $ · no restore
Activity log
Microsoft Entra ID
App Service
+ diagnostic settings
Azure Monitor
Export to Blob
no analytics-tier decision
Blob storage
Your storage account
.ctrlb/indexes/ beside export/
Microsoft SentinelSentinel rules & SOC workflow unchanged

The tiering problem

  • Analytics-tier pricing forces a decision about which logs are worth detecting on, made before you know what an incident will need.
  • Basic and archive tiers are cheaper precisely because the data in them is not directly queryable.
  • Restoring an archived table to answer one question adds hours to an investigation that should take minutes.
  • Diagnostic settings that would be useful get left off, because the volume lands in the expensive tier.
What changes
Activity, Entra ID sign-in, and resource diagnostic logs land in your own Azure storage account at storage prices.
There is no archive tier, so the oldest month answers as fast as the newest and nothing needs restoring first.
Volume stops being the deciding factor in which diagnostic settings you turn on.
Sentinel keeps the analytics rules and incident workflow your SOC already runs — see the coexistence page.

How it works

Diagnostic settings already export to Blob storage. CtrlB indexes what lands beside the data — nothing leaves your subscription.

Step 01
App Service
SQL Database
Key Vault
Azure Monitor
Diagnostic settings
export enabled · no tier decision
Storage account
your storage account
Blob export · your subscription
1

Export to your storage account

Diagnostic settings already support export to Blob storage. Point them there and CtrlB indexes what lands.

Step 02
subscription · proddata stays inside
export/
activity/
entra/
.ctrlb/indexes/
principal.idx
ip.idx

indexes beside the export · same region · nothing leaves

2

Index in place

Indexes are written beside the data in the same storage account, so nothing leaves your subscription.

Step 03
archive tierrestore 4–12 h before query
2 years ago
no restore
this morning
no restore
Microsoft Entra IDActivity logDiagnostic settings

one query surface · every retained day

3

Search the whole window

One query surface across every retained day, whether it arrived this morning or two years ago.

In the product

Azure’s own dimensions become ordinary facets

Subscription, resource group, region, and category are not a schema you declare — they arrive with the record and are filterable the moment they land, including on data written a year ago.

LogsAzure · all subscriptionslast 18 months
category:SignInLogs resultType:50126
37,214 results
Subscription
prod-platform41K
prod-data12K
Category
SignInLogs37K
AuditLogs3.1K
AzureActivity1.2K
Result
Failure214
Success37K
Entra IDSubscription prod-platformResource group rg-identityRegion westeurope
Sign-in failed — MFA required by Conditional Access
Attributesall 40 kept · none dropped
categorySignInLogs
identity.upnj.okafor@contoso.com
resultType50126
conditionalAccessStatusfailure
ipAddress203.0.113.9
location.cityRotterdam
appDisplayNameAzure Portal
correlationId3d826a6c-4ea3-e83f
Coverage

Anything with a diagnostic setting

There is no per-service connector to wait for. If a resource can export to a storage account, its logs are searchable — and new fields do not need a schema change first.

Activity logActivity log
Microsoft Entra IDMicrosoft Entra ID
Kubernetes ServiceKubernetes Service
App ServiceApp Service
FunctionsFunctions
Container AppsContainer Apps
Virtual MachinesVirtual Machines
SQL DatabaseSQL Database
Cosmos DBCosmos DB
Key VaultKey Vault
Azure FirewallAzure Firewall
Application GatewayApplication Gateway
Front DoorFront Door
Load BalancerLoad Balancer
Virtual NetworkVirtual Network
Event HubsEvent Hubs
Storage accountStorage account
Azure MonitorAzure Monitor

Icons are Microsoft’s official Azure architecture icons, shown unmodified.

What you get

Entra ID sign-in logs

Activity logs

Resource diagnostics

Your subscription

Multi-cloud

Runs beside Sentinel

Production proof
OnBe
5 sources → 1 lake

Application, infrastructure, database, load balancer, and firewall logs share one data layer — one searchable history instead of five tiered destinations.

See what changed for OnBe

Questions

It does not have to. The common pattern is to keep Sentinel for analytics rules and incident workflow while the high-volume connectors and long-tail retention move to your own storage.

In your own Azure storage account, in the region you choose, with the indexes alongside it.

There is no archive tier to restore from. Every retained object is directly queryable at the same speed.

Yes. One lake spans clouds, with cloud and account as ordinary dimensions.

Put it on your own bucket and see.

Point a source at CtrlB, keep everything else where it is, and compare the same investigation side by side.