# Azure AI Search Idle

> An Azure AI Search service bills per search unit around the clock, so zero queries means the full monthly charge is waste. ZopNight reads the SearchQueriesPerSecond metric over 30 days and flags the service only when average and peak are both exactly 0, recommending deletion.

Source: https://zop.dev/integrations/azure/recommendations/azure-ai-search-idle
Updated: 2026-08-19

---

## Search units bill whether anyone searches or not

Azure AI Search is priced per search unit (replicas times partitions), and the meter runs
continuously on Basic and Standard tiers. A service that answers no queries costs exactly as much
as one under full load. That makes an unqueried service one of the cleaner finds in an Azure
bill: there is no partial value to weigh, the whole charge is recoverable.

ZopNight prices the finding from the service's calculated rack rate (hourly rate times unit
count), so the recommendation carries the real monthly figure, not an estimate.

## Exactly zero, not merely low

The rule reads a single Azure Monitor series, `SearchQueriesPerSecond`, across a 30-day window.
It fires only when both the average and the maximum are exactly 0. One query anywhere in the
window is treated as evidence of use, and the rule abstains.

That strictness is deliberate. Deleting a search service destroys its indexes, so the bar for
recommending it is absolute silence, not a low-traffic judgement call.

## Why the 1x1 floor is not exempt here

ZopNight has a separate over-provisioned rule for AI Search (RC-1396) that only looks at
services above 1 search unit and recommends scaling toward the 1x1 floor. This idle rule
deliberately fires at any unit count, including that single-unit floor the scaling rule
ignores, because the right lever for a service with no callers is deletion, not a smaller
replica count.

## Pull the query series yourself

```bash
az monitor metrics list \
  --resource "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.Search/searchServices/<name>" \
  --metric SearchQueriesPerSecond \
  --interval PT1H --offset 30d \
  --aggregation Average Maximum
```

Every datapoint should be zero before you act.

## Cases where the rule abstains

No recommendation is emitted when the metric series is absent (an Azure Monitor gap or a
permissions problem is not evidence of idleness), when the series carries fewer than 7 days of
history (a brand-new service naturally shows zero traffic), when any query registered, or when
no positive monthly cost is known. ZopNight never emits a $0 finding here.

## Before you delete

Export index definitions and any source data you would need to rebuild; a deleted search
service cannot be recovered. Detection requires only the built-in Reader and Monitoring Reader
roles; no write access is involved in flagging the service.
