Creare avvisi delle metriche per i log in Monitoraggio di AzureCreate Metric Alerts for Logs in Azure Monitor

PanoramicaOverview

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Monitoraggio di Azure un tipo di avviso delle metriche che presenta vantaggi rispetto agli avvisi classici.Azure Monitor supports metric alert type which has benefits over the classic alerts. Sono disponibili metriche per un lungo elenco di servizi di Azure.Metrics are available for large list of Azure services. Questo articolo illustra l'uso di un subset per la risorsa - Microsoft.OperationalInsights/workspaces.This article explains usage of a subset (that is) for resource - Microsoft.OperationalInsights/workspaces.

È possibile usare gli avvisi delle metriche nei log di Log Analytics più comuni estratti come metriche nell'ambito di metriche dai log, incluse le risorse in Azure o in locale.You can use metric alerts on popular Log Analytics logs extracted as metrics as part of Metrics from Logs including resources in Azure or on-premise. Le soluzioni di Log Analytics supportate sono elencate di seguito:The supported Log Analytics solutions are listed below:

Esistono diversi vantaggi per l'uso di avvisi delle metriche per i log rispetto ad avvisi dei log basati su query in Azure. Alcuni vantaggi sono elencati di seguito:There are many benefits for using Metric Alerts for Logs over query based Log Alerts in Azure; some of them are listed below:

  • Gli avvisi delle metriche offrono funzionalità di monitoraggio quasi in tempo reale e gli avvisi delle metriche per i log creano una copia tramite fork dei dati dall'origine dei log per garantire lo stesso funzionamento.Metric Alerts offer near-real time monitoring capability and Metric Alerts for Logs forks data from log source to ensure the same.
  • Gli avvisi delle metriche sono con stato e vengono notificati due volte, quando l'avviso viene generato e quando viene risolto, a differenza degli avvisi dei log che sono senza stato e vengono generati costantemente a ogni intervallo se la condizione di avviso viene soddisfatta.Metric Alerts are stateful - only notifying once when alert is fired and once when alert is resolved; as opposed to Log alerts, which are stateless and keep firing at every interval if the alert condition is met.
  • Gli avvisi delle metriche per i log offrono più dimensioni, consentendo di filtrare in base a valori specifici, ad esempio computer, tipo di sistema operativo e così via, senza la necessità di creare query nell'ambiente di analisi.Metric Alerts for Log provide multiple dimensions, allowing filtering to specific values like Computers, OS Type, etc. simpler; without the need for penning query in analytics.

Nota

Metriche e/o dimensioni specifiche verranno visualizzate solo se i relativi dati esistono nel periodo scelto.Specific metric and/or dimension will only be shown if data for it exists in chosen period. Tali metriche sono disponibili per i clienti con le aree di lavoro di Azure Log Analytics.These metrics are available for customers with Azure Log Analytics workspaces.

Metriche e dimensioni supportate per i logMetrics and dimensions supported for logs

Gli avvisi delle metriche supportano le metriche con dimensioni.Metric alerts support alerting for metrics that use dimensions. Le dimensioni possono essere usate per filtrare le metriche al livello corretto.You can use dimensions to filter your metric to the right level. Viene indicato l'elenco completo delle metriche supportate per i log in aree di lavoro di Log Analytics tra le soluzioni supportate.The full list of metrics supported for Logs from Log Analytics workspaces is listed; across supported solutions.

Nota

Per visualizzare le metriche supportate per essere estratte dall'area di lavoro Log Analytics, usare Monitoraggio di Azure - Metriche. Un avviso delle metriche per il log deve essere creato per la metrica specifica.To view supported metrics for being extracted from Log Analytics workspace via Azure Monitor - Metrics; a metric alert for log must be created for the said metric. Le dimensioni scelte nell'avviso delle metriche per i logo viene visualizzata solo per l'esplorazione tramite Monitoraggio di Azure - Metriche.The dimensions chosen in Metric Alert for logs - will only appear for exploration via Azure Monitor - Metrics.

Creazione di avvisi delle metriche per Log AnalyticsCreating metric alert for Log Analytics

I dati delle metriche derivanti dai log più comuni vengono inviati prima di essere elaborati in Log Analytics in Monitoraggio di Azure - Metriche.Metric data from popular logs is piped before it is processed in Log Analytics, into Azure Monitor - Metrics. Ciò consente agli utenti di sfruttare le funzionalità della piattaforma di metriche e degli avvisi delle metriche, tra cui gli avvisi con frequenza minima di 1 minuto.This allows users to leverage the capabilities of the Metric platform as well as metric alert - including having alerts with frequency as low as 1 minute. Di seguito sono elencati i modi in cui creare un avviso delle metriche per i log.Listed below are the means of crafting a metric alert for logs.

Prerequisiti per creare un avviso delle metriche per i logPrerequisites for Metric Alert for Logs

Prima che sia possibile usare la metrica per i log raccolta sui dati di Log Analytics, è necessario che siano configurati e disponibili gli elementi seguenti:Before Metric for Logs gathered on Log Analytics data works, the following must be set up and available:

  1. area di lavoro Log Analytics attiva: è necessario che sia presente un'area di lavoro Log Analytics valida e attiva.Active Log Analytics Workspace: A valid and active Log Analytics workspace must be present. Per altre informazioni, vedere Creare un'area di lavoro Log Analytics nel portale di Azure.For more information, see Create a Log Analytics Workspace in Azure portal.
  2. Agente configurato per l'area di lavoro Log Analytics: è necessario che un agente sia configurato per le macchine virtuali di Azure (e/o) per le macchine virtuali in locale per inviare i dati all'area di lavoro Log Analytics usata nel passaggio precedente.Agent is configured for Log Analytics Workspace: Agent needs to be configured for Azure VMs (and/or) On-Premise VMs to send data into the Log Analytics Workspace used in earlier step. Per altre informazioni, vedere Panoramica degli agenti di Azure per monitorare macchine virtuali di Azure.For more information, see Log Analytics - Agent Overview.
  3. Soluzioni di Log Analytics supportate: Log Analytics soluzione deve essere configurata e l'invio di dati in Log Analytics le soluzioni supportate dall'area di lavoro sono contatori delle prestazioni per Windows & Linux, record heartbeat per integrità agente, Gestione aggiornamentie Dati dell'evento.Supported Log Analytics Solutions is installed: Log Analytics solution should be configured and sending data into Log Analytics workspace - supported solutions are Performance counters for Windows & Linux, Heartbeat records for Agent Health, Update management, and Event data.
  4. Soluzioni di Log Analytics configurate per inviare log: per la soluzione Log Analytics è necessario che siano abilitati i log e i dati necessari corrispondenti alle metriche supportate per le aree di lavoro di Log Analytics.Log Analytics solutions configured to send logs: Log Analytics solution should have the required logs/data corresponding to metrics supported for Log Analytics workspaces enabled. Ad esempio, per il valore relativo alla percentuale di memoria disponibile il contatore relativo deve essere prima configurato nella soluzione contatori delle prestazioni.For example, for % Available Memory counter of it must be configured in Performance counters solution first.

Configurazione degli avvisi delle metriche per i logConfiguring Metric Alert for Logs

Gli avvisi delle metriche possono essere creati e gestiti tramite il portale di Azure, i modelli di Resource Manager, l'API REST, PowerShell e l'interfaccia della riga di comando di Azure.Metric alerts can be created and managed using the Azure portal, Resource Manager Templates, REST API, PowerShell, and Azure CLI. Poiché gli avvisi delle metriche per i log sono una variante degli avvisi delle metriche, una volta soddisfatti i prerequisiti, possono essere creati per l'area di lavoro Log Analytics specificata.Since Metric Alerts for Logs, is a variant of metric alerts - once the prerequisites are done, metric alert for logs can be created for specified Log Analytics workspace. Tutte le caratteristiche e le funzionalità degli avvisi delle metriche sono applicabili agli avvisi delle metriche per i log, ad esempio lo schema di payload, i limiti di quota applicabile e il prezzo fatturato.All characteristics and functionalities of metric alerts will be applicable to metric alerts for logs, as well; including payload schema, applicable quota limits, and billed price.

Per informazioni dettagliate ed esempi, vedere Creazione e gestione degli avvisi delle metriche.For step-by-step details and samples - see creating and managing metric alerts. In particolare, per gli avvisi delle metriche per i log, seguire le istruzioni per la gestione e verificare quanto segue:Specifically, for Metric Alerts for Logs - follow the instructions for managing metric alerts and ensure the following:

  • La destinazione per un avviso delle metriche è un'area di lavoro Log AnalyticsTarget for metric alert is a valid Log Analytics workspace
  • Il segnale scelto per l'avviso delle metriche relativo all'area di lavoro Log Analytics selezionata deve essere di tipo MetricaSignal chosen for metric alert for selected Log Analytics workspace is of type Metric
  • Il filtro per condizioni o risorse specifiche deve essere applicato tramite filtri di dimensione perché le metriche per i log sono multidimensionaliFilter for specific conditions or resource using dimension filters; metrics for logs are multi-dimensional
  • Quando si configura un segnale logico, un singolo avviso può essere creato per essere distribuito su più valori di dimensione (ad esempio computer)When configuring Signal Logic, a single alert can be created to span multiple values of dimension (like Computer)
  • Se non si usa il portale di Azure per creare un avviso delle metriche per l'area di lavoro Log Analytics selezionata, è necessario prima creare manualmente una regola esplicita per convertire i dati di log in una metrica usando Monitoraggio di Azure - Regole di query pianificate.If not using Azure portal for creating metric alert for selected Log Analytics workspace; then user must manually first create an explicit rule for converting log data into a metric using Azure Monitor - Scheduled Query Rules.

Nota

Quando si crea un avviso delle metriche per l'area di lavoro Log Analytics tramite il portale di Azure, viene creata automaticamente in background una regola corrispondente per la conversione dei dati di log in una metrica tramite Monitoraggio di Azure - Regole di query pianificate, senza che sia necessario alcun intervento o azione da parte dell'utente.When creating metric alert for Log Analytics workspace via Azure portal - corresponding rule for converting log data into metric via Azure Monitor - Scheduled Query Rules is automatically created in background, without the need of any user intervention or action. Per la creazione di avvisi delle metriche per i log tramite il portale di Azure, vedere la sezione Modello di risorse per gli avvisi delle metriche per i log sugli strumenti di esempio per creare una regola di conversione da log a metrica basata su una regola di query pianificata prima della creazione degli avvisi delle metriche. In caso contrario, non sarà presente alcun dato per l'avviso delle metriche sui log creati.For metric alert for logs creation using means other than Azure portal, see Resource Template for Metric Alerts for Logs section on sample means of creating a ScheduledQueryRule based log to metric conversion rule before metric alert creation - else there will be no data for the metric alert on logs created.

Modello di risorse per gli avvisi delle metriche per i logResource Template for Metric Alerts for Logs

Come indicato in precedenza, il processo per la creazione di avvisi delle metriche a partire dai log è costituito da due passaggi:As stated earlier, the process for creation of metric alerts from logs is two pronged:

  1. Creare una regola per estrarre le metriche dai log supportati tramite l'API scheduledQueryRuleCreate a rule for extracting metrics from supported logs using scheduledQueryRule API
  2. Creare un avviso per la metrica estratta dal log (nel passaggio 1) e un'area di lavoro Log Analytics come risorsa di destinazioneCreate a metric alert for metric extracted from log (in step1) and Log Analytics workspace as a target resource

Avvisi delle metriche per i log con soglie staticheMetric Alerts for Logs with static threshold

Per ottenere lo stesso risultato, è possibile usare il modello di esempio di Azure Resource Manager seguente, in cui la creazione di avvisi delle metriche con soglie statiche dipende dalla creazione corretta della regola per estrarre le metriche dai log tramite scheduledQueryRule.To achieve the same, one can use the sample Azure Resource Manager Template below - where creation of a static threshold metric alert depends on successful creation of the rule for extracting metrics from logs via scheduledQueryRule.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "convertRuleName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the rule to convert log to metric"
            }
        },
        "convertRuleDescription": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Description for log converted to metric"
            }
        },
        "convertRuleRegion": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the region used by workspace"
            }
        },
        "convertRuleStatus": {
            "type": "string",
            "defaultValue": "true",
            "metadata": {
                "description": "Specifies whether the log conversion rule is enabled"
            }
        },
        "convertRuleMetric": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the metric once extraction done from logs."
            }
        },
        "alertName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the alert"
            }
        },
        "alertDescription": {
            "type": "string",
            "defaultValue": "This is a metric alert",
            "metadata": {
                "description": "Description of alert"
            }
        },
        "alertSeverity": {
            "type": "int",
            "defaultValue": 3,
            "allowedValues": [
                0,
                1,
                2,
                3,
                4
            ],
            "metadata": {
                "description": "Severity of alert {0,1,2,3,4}"
            }
        },
        "isEnabled": {
            "type": "bool",
            "defaultValue": true,
            "metadata": {
                "description": "Specifies whether the alert is enabled"
            }
        },
        "resourceId": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Full Resource ID of the resource emitting the metric that will be used for the comparison. For example /subscriptions/00000000-0000-0000-0000-0000-00000000/resourceGroups/ResourceGroupName/providers/Microsoft.compute/virtualMachines/VM_xyz"
            }
        },
        "metricName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the metric used in the comparison to activate the alert."
            }
        },
        "operator": {
            "type": "string",
            "defaultValue": "GreaterThan",
            "allowedValues": [
                "Equals",
                "NotEquals",
                "GreaterThan",
                "GreaterThanOrEqual",
                "LessThan",
                "LessThanOrEqual"
            ],
            "metadata": {
                "description": "Operator comparing the current value with the threshold value."
            }
        },
        "threshold": {
            "type": "string",
            "defaultValue": "0",
            "metadata": {
                "description": "The threshold value at which the alert is activated."
            }
        },
        "timeAggregation": {
            "type": "string",
            "defaultValue": "Average",
            "allowedValues": [
                "Average",
                "Minimum",
                "Maximum",
                "Total"
            ],
            "metadata": {
                "description": "How the data that is collected should be combined over time."
            }
        },
        "windowSize": {
            "type": "string",
            "defaultValue": "PT5M",
            "metadata": {
                "description": "Period of time used to monitor alert activity based on the threshold. Must be between five minutes and one day. ISO 8601 duration format."
            }
        },
        "evaluationFrequency": {
            "type": "string",
            "defaultValue": "PT1M",
            "metadata": {
                "description": "how often the metric alert is evaluated represented in ISO 8601 duration format"
            }
        },
        "actionGroupId": {
            "type": "string",
            "defaultValue": "",
            "metadata": {
                "description": "The ID of the action group that is triggered when the alert is activated or deactivated"
            }
        }
    },
    "variables": {
        "convertRuleTag": "hidden-link:/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName",
        "convertRuleSourceWorkspace": {
            "SourceId": "/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
        }
    },
    "resources": [
        {
            "name": "[parameters('convertRuleName')]",
            "type": "Microsoft.Insights/scheduledQueryRules",
            "apiVersion": "2018-04-16",
            "location": "[parameters('convertRuleRegion')]",
            "tags": {
                "[variables('convertRuleTag')]": "Resource"
            },
            "properties": {
                "description": "[parameters('convertRuleDescription')]",
                "enabled": "[parameters('convertRuleStatus')]",
                "source": {
                    "dataSourceId": "[variables('convertRuleSourceWorkspace').SourceId]"
                },
                "action": {
                    "odata.type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction",
                    "criteria": [{
                            "metricName": "[parameters('convertRuleMetric')]",
                            "dimensions": []
                        }
                    ]
                }
            }
        },
        {
            "name": "[parameters('alertName')]",
            "type": "Microsoft.Insights/metricAlerts",
            "location": "global",
            "apiVersion": "2018-03-01",
            "tags": {},
            "dependsOn":["[resourceId('Microsoft.Insights/scheduledQueryRules',parameters('convertRuleName'))]"],
            "properties": {
                "description": "[parameters('alertDescription')]",
                "severity": "[parameters('alertSeverity')]",
                "enabled": "[parameters('isEnabled')]",
                "scopes": ["[parameters('resourceId')]"],
                "evaluationFrequency":"[parameters('evaluationFrequency')]",
                "windowSize": "[parameters('windowSize')]",
                "criteria": {
                    "odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
                    "allOf": [
                        {
                            "name" : "1st criterion",
                            "metricName": "[parameters('metricName')]",
                            "dimensions":[],
                            "operator": "[parameters('operator')]",
                            "threshold" : "[parameters('threshold')]",
                            "timeAggregation": "[parameters('timeAggregation')]"
                        }
                    ]
                },
                "actions": [
                    {
                        "actionGroupId": "[parameters('actionGroupId')]"
                    }
                ]
            }
        }
    ]
}

Se il codice JSON precedente viene salvato come metricfromLogsAlertStatic.json, può essere abbinato a un file JSON dei parametri per la creazione basata su un modello di risorse.Say the above JSON is saved as metricfromLogsAlertStatic.json - then it can be coupled with a parameter JSON file for Resource Template based creation. Un file JSON dei parametri di esempio è indicato di seguito:A sample parameter JSON file is listed below:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "convertRuleName": {
            "value": "TestLogtoMetricRule" 
        },
        "convertRuleDescription": {
            "value": "Test rule to extract metrics from logs via template"
        },
        "convertRuleRegion": {
            "value": "West Central US"
        },
        "convertRuleStatus": {
            "value": "true"
        },
        "convertRuleMetric": {
            "value": "Average_% Idle Time"
        },
        "alertName": {
            "value": "TestMetricAlertonLog"
        },
        "alertDescription": {
            "value": "New multi-dimensional metric alert created via template"
        },
        "alertSeverity": {
            "value":3
        },
        "isEnabled": {
            "value": true
        },
        "resourceId": {
            "value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
        },
        "metricName":{
            "value": "Average_% Idle Time"
        },
        "operator": {
            "value": "GreaterThan"
        },
        "threshold":{
            "value": "1"
        },
        "timeAggregation":{
            "value": "Average"
        },
        "actionGroupId": {
            "value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/microsoft.insights/actionGroups/actionGroupName"
        }
    }
}

Se il file dei parametri precedente viene salvato come metricfromLogsAlertStatic.parameters.json, è possibile creare l'avviso delle metriche per i log usando il modello di risorse per la creazione nel portale di Azure.Assuming the above parameter file is saved as metricfromLogsAlertStatic.parameters.json; then one can create metric alert for logs using Resource Template for creation in Azure portal.

In alternativa, è possibile usare anche il comando di Azure Powershell seguente:Alternatively, one can use the Azure Powershell command below as well:

New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertStatic.json TemplateParameterFile metricfromLogsAlertStatic.parameters.json

In alternativa, distribuire il modello di risorse tramite l'interfaccia della riga di comando di Azure:Or use deploy Resource Template using Azure CLI:

az group deployment create --resource-group myRG --template-file metricfromLogsAlertStatic.json --parameters @metricfromLogsAlertStatic.parameters.json

Avvisi delle metriche con soglie dinamicheMetric Alerts for Logs with Dynamic Thresholds

Per ottenere lo stesso risultato, è possibile usare il modello di esempio di Azure Resource Manager seguente, in cui la creazione di avvisi delle metriche con soglie dinamiche dipende dalla creazione corretta della regola per estrarre le metriche dai log tramite scheduledQueryRule.To achieve the same, one can use the sample Azure Resource Manager Template below - where creation of a Dynamic Thresholds metric alert depends on successful creation of the rule for extracting metrics from logs via scheduledQueryRule.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "convertRuleName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the rule to convert log to metric"
            }
        },
        "convertRuleDescription": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Description for log converted to metric"
            }
        },
        "convertRuleRegion": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the region used by workspace"
            }
        },
        "convertRuleStatus": {
            "type": "string",
            "defaultValue": "true",
            "metadata": {
                "description": "Specifies whether the log conversion rule is enabled"
            }
        },
        "convertRuleMetric": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the metric once extraction done from logs."
            }
        },
        "alertName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the alert"
            }
        },
        "alertDescription": {
            "type": "string",
            "defaultValue": "This is a metric alert",
            "metadata": {
                "description": "Description of alert"
            }
        },
        "alertSeverity": {
            "type": "int",
            "defaultValue": 3,
            "allowedValues": [
                0,
                1,
                2,
                3,
                4
            ],
            "metadata": {
                "description": "Severity of alert {0,1,2,3,4}"
            }
        },
        "isEnabled": {
            "type": "bool",
            "defaultValue": true,
            "metadata": {
                "description": "Specifies whether the alert is enabled"
            }
        },
        "resourceId": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Full Resource ID of the resource emitting the metric that will be used for the comparison. For example /subscriptions/00000000-0000-0000-0000-0000-00000000/resourceGroups/ResourceGroupName/providers/Microsoft.compute/virtualMachines/VM_xyz"
            }
        },
        "metricName": {
            "type": "string",
            "minLength": 1,
            "metadata": {
                "description": "Name of the metric used in the comparison to activate the alert."
            }
        },
        "operator": {
            "type": "string",
            "defaultValue": "GreaterOrLessThan",
            "allowedValues": [
                "GreaterThan",
                "LessThan",
                "GreaterOrLessThan"
            ],
            "metadata": {
                "description": "Operator comparing the current value with the threshold value."
            }
        },
        "alertSensitivity": {
            "type": "string",
            "defaultValue": "Medium",
            "allowedValues": [
                "High",
                "Medium",
                "Low"
            ],
            "metadata": {
                "description": "Tunes how 'noisy' the Dynamic Thresholds alerts will be: 'High' will result in more alerts while 'Low' will result in fewer alerts."
            }
        },
        "numberOfEvaluationPeriods": {
            "type": "string",
            "defaultValue": "4",
            "metadata": {
                "description": "The number of periods to check in the alert evaluation."
            }
        },
        "minFailingPeriodsToAlert": {
            "type": "string",
            "defaultValue": "3",
            "metadata": {
                "description": "The number of unhealthy periods to alert on (must be lower or equal to numberOfEvaluationPeriods)."
            }
        },
        "timeAggregation": {
            "type": "string",
            "defaultValue": "Average",
            "allowedValues": [
                "Average",
                "Minimum",
                "Maximum",
                "Total"
            ],
            "metadata": {
                "description": "How the data that is collected should be combined over time."
            }
        },
        "windowSize": {
            "type": "string",
            "defaultValue": "PT5M",
            "metadata": {
                "description": "Period of time used to monitor alert activity based on the threshold. Must be between five minutes and one day. ISO 8601 duration format."
            }
        },
        "evaluationFrequency": {
            "type": "string",
            "defaultValue": "PT1M",
            "metadata": {
                "description": "how often the metric alert is evaluated represented in ISO 8601 duration format"
            }
        },
        "actionGroupId": {
            "type": "string",
            "defaultValue": "",
            "metadata": {
                "description": "The ID of the action group that is triggered when the alert is activated or deactivated"
            }
        }
    },
    "variables": {
        "convertRuleTag": "hidden-link:/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName",
        "convertRuleSourceWorkspace": {
            "SourceId": "/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
        }
    },
    "resources": [
        {
            "name": "[parameters('convertRuleName')]",
            "type": "Microsoft.Insights/scheduledQueryRules",
            "apiVersion": "2018-04-16",
            "location": "[parameters('convertRuleRegion')]",
            "tags": {
                "[variables('convertRuleTag')]": "Resource"
            },
            "properties": {
                "description": "[parameters('convertRuleDescription')]",
                "enabled": "[parameters('convertRuleStatus')]",
                "source": {
                    "dataSourceId": "[variables('convertRuleSourceWorkspace').SourceId]"
                },
                "action": {
                    "odata.type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction",
                    "criteria": [{
                            "metricName": "[parameters('convertRuleMetric')]",
                            "dimensions": []
                        }
                    ]
                }
            }
        },
        {
            "name": "[parameters('alertName')]",
            "type": "Microsoft.Insights/metricAlerts",
            "location": "global",
            "apiVersion": "2018-03-01",
            "tags": {},
            "dependsOn":["[resourceId('Microsoft.Insights/scheduledQueryRules',parameters('convertRuleName'))]"],
            "properties": {
                "description": "[parameters('alertDescription')]",
                "severity": "[parameters('alertSeverity')]",
                "enabled": "[parameters('isEnabled')]",
                "scopes": ["[parameters('resourceId')]"],
                "evaluationFrequency":"[parameters('evaluationFrequency')]",
                "windowSize": "[parameters('windowSize')]",
                "criteria": {
                    "odata.type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria",
                    "allOf": [
                        {
                            "criterionType": "DynamicThresholdCriterion",
                            "name" : "1st criterion",
                            "metricName": "[parameters('metricName')]",
                            "dimensions":[],
                            "operator": "[parameters('operator')]",
                            "alertSensitivity": "[parameters('alertSensitivity')]",
                            "failingPeriods": {
                                "numberOfEvaluationPeriods": "[parameters('numberOfEvaluationPeriods')]",
                                "minFailingPeriodsToAlert": "[parameters('minFailingPeriodsToAlert')]"
                            },
                            "timeAggregation": "[parameters('timeAggregation')]"
                        }
                    ]
                },
                "actions": [
                    {
                        "actionGroupId": "[parameters('actionGroupId')]"
                    }
                ]
            }
        }
    ]
}

Se il codice JSON precedente viene salvato come metricfromLogsAlertDynamic.json, può essere abbinato a un file JSON dei parametri per la creazione basata su un modello di risorse.Say the above JSON is saved as metricfromLogsAlertDynamic.json - then it can be coupled with a parameter JSON file for Resource Template based creation. Un file JSON dei parametri di esempio è indicato di seguito:A sample parameter JSON file is listed below:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "convertRuleName": {
            "value": "TestLogtoMetricRule"
        },
        "convertRuleDescription": {
            "value": "Test rule to extract metrics from logs via template"
        },
        "convertRuleRegion": {
            "value": "West Central US"
        },
        "convertRuleStatus": {
            "value": "true"
        },
        "convertRuleMetric": {
            "value": "Average_% Idle Time"
        },
        "alertName": {
            "value": "TestMetricAlertonLog"
        },
        "alertDescription": {
            "value": "New multi-dimensional metric alert created via template"
        },
        "alertSeverity": {
            "value":3
        },
        "isEnabled": {
            "value": true
        },
        "resourceId": {
            "value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
        },
        "metricName":{
            "value": "Average_% Idle Time"
        },
        "operator": {
            "value": "GreaterOrLessThan"
          },
          "alertSensitivity": {
              "value": "Medium"
          },
          "numberOfEvaluationPeriods": {
              "value": "4"
          },
          "minFailingPeriodsToAlert": {
              "value": "3"
          },
        "timeAggregation":{
            "value": "Average"
        },
        "actionGroupId": {
            "value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/microsoft.insights/actionGroups/actionGroupName"
        }
    }
}

Se il file dei parametri precedente viene salvato come metricfromLogsAlertDynamic.parameters.json, è possibile creare l'avviso delle metriche per i log usando il modello di risorse per la creazione nel portale di Azure.Assuming the above parameter file is saved as metricfromLogsAlertDynamic.parameters.json; then one can create metric alert for logs using Resource Template for creation in Azure portal.

In alternativa, è possibile usare anche il comando di Azure Powershell seguente:Alternatively, one can use the Azure Powershell command below as well:

New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertDynamic.json TemplateParameterFile metricfromLogsAlertDynamic.parameters.json

In alternativa, distribuire il modello di risorse tramite l'interfaccia della riga di comando di Azure:Or use deploy Resource Template using Azure CLI:

az group deployment create --resource-group myRG --template-file metricfromLogsAlertDynamic.json --parameters @metricfromLogsAlertDynamic.parameters.json

Passaggi successiviNext steps