-
Notifications
You must be signed in to change notification settings - Fork 32
add Azure Monitor service doc #499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+315
−11
Merged
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
382b5da
add Azure Monitor service doc
HarshCasper 62924ae
Update src/content/docs/azure/services/monitor.mdx
HarshCasper b0d0e23
Update src/content/docs/azure/services/monitor.mdx
HarshCasper 98f5889
Update src/content/docs/azure/services/monitor.mdx
HarshCasper b970369
Update src/content/docs/azure/services/monitor.mdx
HarshCasper 9f22781
Update src/content/docs/azure/services/monitor.mdx
HarshCasper fbdbfca
Update src/content/docs/azure/services/monitor.mdx
HarshCasper 2d79cf6
Update src/content/docs/azure/services/monitor.mdx
HarshCasper c088c5d
Update src/content/docs/azure/services/monitor.mdx
HarshCasper 103e70b
Update src/content/docs/azure/services/monitor.mdx
HarshCasper 99ec395
Update src/content/docs/azure/services/monitor.mdx
HarshCasper d7ef57c
Apply suggestions from code review
HarshCasper be17203
final fixes
HarshCasper File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,315 @@ | ||
| --- | ||
| title: "Monitor" | ||
| description: Get started with Azure Monitor on LocalStack | ||
| template: doc | ||
| --- | ||
|
|
||
| import AzureFeatureCoverage from "../../../../components/feature-coverage/AzureFeatureCoverage"; | ||
|
|
||
| ## Introduction | ||
|
|
||
| Azure Monitor is a platform service for collecting, analyzing, and acting on telemetry from Azure resources and applications. | ||
| It helps you inspect activity logs and configure diagnostic settings for operational visibility. | ||
| These capabilities are useful for troubleshooting, auditing, and observability workflows. For more information, see [Azure Monitor overview](https://learn.microsoft.com/azure/azure-monitor/fundamentals/overview). | ||
|
|
||
| LocalStack for Azure provides a local environment for building and testing applications that make use of Azure Monitor. | ||
| The supported APIs are available on our [API Coverage section](#api-coverage), which provides information on the extent of Monitor's integration with LocalStack. | ||
|
|
||
| ## Getting started | ||
|
|
||
| This guide is designed for users new to Azure Monitor and assumes basic knowledge of the Azure CLI and our `azlocal` wrapper script. | ||
|
|
||
| Launch LocalStack using your preferred method. For more information, see [Introduction to LocalStack for Azure](/azure/getting-started/). Once the container is running, enable Azure CLI interception by running: | ||
|
|
||
| ```bash | ||
| azlocal start-interception | ||
| ``` | ||
|
|
||
| This command points the `az` CLI away from the public Azure management REST API and toward the LocalStack for Azure emulator API. | ||
| To revert this configuration, run: | ||
|
|
||
| ```bash | ||
| azlocal stop-interception | ||
| ``` | ||
|
|
||
| This reconfigures the `az` CLI to send commands to the official Azure management REST API. | ||
|
|
||
| ### Create a resource group | ||
|
|
||
| Create a resource group to contain your Monitor demo resources: | ||
|
|
||
| ```bash | ||
| az group create \ | ||
| --name rg-monitor-demo \ | ||
| --location westeurope | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| { | ||
| "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-monitor-demo", | ||
| "location": "westeurope", | ||
| "managedBy": null, | ||
| "name": "rg-monitor-demo", | ||
| "properties": { | ||
| "provisioningState": "Succeeded" | ||
| }, | ||
| "tags": null, | ||
| "type": "Microsoft.Resources/resourceGroups" | ||
| } | ||
| ``` | ||
|
|
||
| ### Create a storage account | ||
|
|
||
| Create a storage account to use as a diagnostic settings destination: | ||
|
|
||
| ```bash | ||
| az storage account create \ | ||
| --name mystore \ | ||
| --resource-group rg-monitor-demo \ | ||
| --location westeurope \ | ||
| --sku Standard_LRS | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| { | ||
| ... | ||
| "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-monitor-demo/providers/Microsoft.Storage/storageAccounts/mystore", | ||
| ... | ||
| "name": "stmonitordoc79", | ||
| ... | ||
| "primaryEndpoints": { | ||
| "blob": "https://mystore.blob.core.azure.localhost.localstack.cloud:4566", | ||
| ... | ||
| "table": "https://mystore.table.core.azure.localhost.localstack.cloud:4566", | ||
| ... | ||
| }, | ||
| ... | ||
| } | ||
| ``` | ||
|
|
||
| ### List activity logs | ||
|
|
||
| List recent activity logs from the subscription: | ||
|
|
||
| ```bash | ||
| azlocal monitor activity-log list --max-events 5 | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| [ | ||
| { | ||
| "caller": "00000000-0000-0000-0000-000000000000", | ||
| "category": { | ||
| "value": "Administrative", | ||
| ... | ||
| }, | ||
| "eventName": { | ||
| "value": "EndRequest", | ||
| ... | ||
| }, | ||
| "eventTimestamp": "2026-03-17T07:34:43.230050", | ||
| "resourceGroupName": "rg-monitor-demo", | ||
| "resourceProviderName": { | ||
| "value": "Microsoft.Resources", | ||
| ... | ||
| }, | ||
| ... | ||
| }, | ||
| ... | ||
| ] | ||
| ``` | ||
|
|
||
| ### Create and inspect diagnostic settings | ||
|
|
||
| Get the resource ID of the storage account: | ||
|
|
||
| ```bash | ||
| RESOURCE_ID=$(az storage account show \ | ||
| --name mystore \ | ||
| --resource-group rg-monitor-demo \ | ||
| --query id \ | ||
| --output tsv) | ||
| ``` | ||
|
|
||
| Create a diagnostic setting for the bob service of the storage account. For more information, see [Diagnostic settings in Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings): | ||
|
|
||
| ```bash | ||
| az monitor diagnostic-settings create \ | ||
| --name rg-monitor-demo \ | ||
| --resource "${RESOURCE_ID}/blobServices/default" \ | ||
| --storage-account mystore \ | ||
| --logs '[{"category":"StorageRead","enabled":true},{"category":"StorageWrite","enabled":true}]' \ | ||
| --metrics '[{"category":"Transaction","enabled":true},{"category":"Capacity","enabled":true}]' | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| { | ||
| "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-monitor-demo/providers/microsoft.insights/diagnosticSettings/rg-monitor-demo", | ||
| "name": "rg-monitor-demo", | ||
| "logs": [ | ||
| { | ||
| "category": "Administrative", | ||
| "enabled": true | ||
| } | ||
| ], | ||
| "metrics": [], | ||
| "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-monitor-demo/providers/microsoft.Storage/storageAccounts/stmonitordoc79", | ||
| "type": "microsoft.insights/diagnosticSettings" | ||
| } | ||
| ``` | ||
|
|
||
| Get the diagnostic setting: | ||
|
|
||
| ```bash | ||
| az monitor diagnostic-settings show \ | ||
| --name rg-monitor-demo \ | ||
| --resource "${RESOURCE_ID}/blobServices/default" | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| { | ||
| "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-monitor-demo/providers/microsoft.insights/diagnosticSettings/rg-monitor-demo", | ||
| "name": "rg-monitor-demo", | ||
| "logs": [ | ||
| { | ||
| "category": "StorageRead", | ||
| "enabled": true | ||
| }, | ||
| { | ||
| "category": "StorageWrite", | ||
| "enabled": true | ||
| } | ||
| ], | ||
| "metrics": [ | ||
| { | ||
| "category": "Transaction", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| }, | ||
| { | ||
| "category": "Capacity", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| } | ||
| ], | ||
| ... | ||
| } | ||
| ``` | ||
|
|
||
| ### Update and delete diagnostic settings | ||
|
|
||
| Update diagnostic settings to include an additional category: | ||
|
|
||
| ```bash | ||
| az monitor diagnostic-settings update \ | ||
| --name rg-monitor-demo \ | ||
| --resource"${RESOURCE_ID}/blobServices/default" \ | ||
| --logs '[{"category":"StorageRead","enabled":true},{"category":"StorageWrite","enabled":true},,{"category":"StorageDelete","enabled":true}]' \ | ||
| --metrics '[{"category":"Transaction","enabled":true},{"category":"Capacity","enabled":true}]' | ||
| ``` | ||
|
|
||
| ```bash title="Output" | ||
| { | ||
| "name": "rg-monitor-demo", | ||
| "logs": [ | ||
| { | ||
| "category": "StorageRead", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| }, | ||
| { | ||
| "category": "StorageWrite", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| }, | ||
| { | ||
| "category": "StorageDelete", | ||
| "enabled": false, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| } | ||
| ], | ||
| "metrics": [ | ||
| { | ||
| "category": "Transaction", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| }, | ||
| { | ||
| "category": "Capacity", | ||
| "enabled": true, | ||
| "retentionPolicy": { | ||
| "days": 0, | ||
| "enabled": false | ||
| } | ||
| } | ||
| ], | ||
| ... | ||
| } | ||
| ``` | ||
|
|
||
| Delete the diagnostic setting: | ||
|
|
||
| ```bash | ||
| az monitor diagnostic-settings delete \ | ||
| --name rg-monitor-demo \ | ||
| --resource "${RESOURCE_ID}/blobServices/default" | ||
| ``` | ||
|
|
||
| ## Features | ||
|
|
||
| The Azure Monitor emulator supports the following features: | ||
|
|
||
| - **Activity logs**: List activity log entries for a subscription, with optional filtering by resource ID and time range. | ||
| - **Diagnostic settings**: Create, get, update, and delete diagnostic settings on any ARM resource. | ||
| - **Application Insights components**: Create, get, update tags, list, delete, and purge Application Insights components. Billing features (get and update) are also supported. | ||
| - **Action groups**: Create, get, update, list (by resource group or subscription), and delete action groups. | ||
| - **Metric alerts**: Create, get, update, list (by resource group or subscription), and delete metric alert rules. | ||
| - **Activity log alerts**: Create, get, update, list (by resource group or subscription), and delete activity log alert rules. | ||
| - **Autoscale settings**: Create, get, update, list (by resource group or subscription), and delete autoscale settings. | ||
| - **Scheduled query rules**: Create, get, update, list (by resource group or subscription), and delete scheduled query rules. | ||
| - **Data collection rules and endpoints**: Create, get, update, list (by resource group or subscription), and delete data collection rules and data collection endpoints. Create, get, list (by resource, by rule, or by endpoint), and delete data collection rule associations. | ||
| - **Web tests**: Create, get, update tags, list (by resource group, subscription, or component), and delete availability web tests. | ||
| - **Workbooks and workbook templates**: Create, get, update, list (by resource group or subscription), and delete workbooks. Create, get, update, list (by resource group), and delete workbook templates. Workbook revisions (get and list) are also supported. | ||
| - **Telemetry ingestion (data plane)**: Accept Application Insights SDK telemetry payloads (`track`), custom metrics publish, and live metrics subscription checks. | ||
| - **Query API (data plane)**: Execute and get log analytics queries, retrieve metrics, and list events. | ||
|
|
||
| ## Limitations | ||
|
|
||
| - **No data persistence across restarts**: Activity logs, diagnostic settings, and all resource state are held in memory and lost when the emulator is stopped or restarted. | ||
| - **Activity log recording**: Only non-read (non-GET) control plane operations are recorded. Data plane operations and read requests do not produce activity log entries. | ||
| - **Diagnostic settings are not enforced**: Diagnostic settings are stored but do not route logs or metrics to the specified destination (storage account, Log Analytics workspace, or event hub). | ||
| - **Telemetry ingestion is a no-op**: The data plane telemetry endpoints (`track`, `publish`, `isSubscribed`) accept payloads and return success responses, but telemetry data is not stored or queryable. | ||
| - **Query API returns empty results**: Log analytics queries, metrics, and event queries return structurally valid but empty responses. | ||
| - **Autoscale rules are not evaluated**: Autoscale settings are stored but scaling actions are never triggered. | ||
| - **Alert rule evaluation**: Metric alerts, activity log alerts, and scheduled query rules are stored as resources but are never evaluated or fired. | ||
| - **Workbook revision history**: Revisions always return the current version of a workbook; historical revision tracking is not implemented. | ||
| - **Components purge**: The purge endpoint accepts requests and returns an operation ID, but no data is actually purged. | ||
|
|
||
| ## Samples | ||
|
|
||
| Explore the following samples to get started with Service Bus on LocalStack: | ||
|
|
||
| - [Azure Functions App with Service Bus Messaging](https://github.com/localstack/localstack-azure-samples/blob/main/samples/function-app-service-bus/dotnet/) | ||
| - [Azure Web App with Azure Cosmos DB for MongoDB](https://github.com/localstack/localstack-azure-samples/blob/main/samples/web-app-cosmosdb-mongodb-api/python/) | ||
|
|
||
| ## API Coverage | ||
|
|
||
| <AzureFeatureCoverage service="Microsoft.Insights" client:load /> | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.