Mantıksal uygulamalarınızı ve runbook'larınızı klasik uyarı kurallarının geçişine hazırlama
Not
Daha önce duyurulmuş olduğu gibi Azure İzleyici'deki klasik uyarılar genel bulut kullanıcıları için kullanımdan kaldırılmıştır ancak 31 Mayıs 2021'e kadar hala sınırlı kullanımdadır. 21Vianet tarafından çalıştırılan Azure Kamu bulut ve Microsoft Azure için klasik uyarılar 29 Şubat 2024'te kullanımdan kaldırmaya devam edecektir.
Klasik uyarı kurallarınızı gönüllü olarak yeni uyarı kurallarına geçirmeyi seçerseniz, iki sistem arasında bazı farklılıklar vardır. Bu makalede bu farklılıklar ve değişikliğe nasıl hazırlanabileceğiniz açıklanmaktadır.
API değişiklikleri
Klasik uyarı kurallarını (microsoft.insights/alertrules
) oluşturan ve yöneten API'ler, yeni ölçüm uyarıları () oluşturan ve yöneten API'lerdenmicrosoft.insights/metricalerts
farklıdır. Klasik uyarı kurallarını bugün program aracılığıyla oluşturuyor ve yönetiyorsanız dağıtım betiklerinizi yeni API'lerle çalışacak şekilde güncelleştirin.
Aşağıdaki tablo hem klasik hem de yeni uyarılar için programlı arabirimlere bir başvurudur:
Dağıtım betiği türü | Klasik uyarılar | Yeni ölçüm uyarıları |
---|---|---|
REST API | microsoft.insights/alertrules | microsoft.insights/metricalerts |
Azure CLI | az monitor alert |
az monitor metrics alert |
PowerShell | Başvuru | Başvuru |
Azure Resource Manager şablonu | Klasik uyarılar için | Yeni ölçüm uyarıları için |
Bildirim yükü değişiklikleri
Bildirim yükü biçimi , klasik uyarı kurallarıylayeni ölçüm uyarıları arasında biraz farklıdır. Web kancası, mantıksal uygulama veya runbook eylemleriyle klasik uyarı kurallarınız varsa, yeni yük biçimini kabul etmek için hedefleri güncelleştirmeniz gerekir.
Web kancası yük alanlarını klasik biçimden yeni biçime eşlemek için aşağıdaki tabloyu kullanın:
Bildirim uç noktası türü | Klasik uyarılar | Yeni ölçüm uyarıları |
---|---|---|
Uyarı etkinleştirildi mi veya çözüldü mü? | Durum | data.status |
Uyarı hakkında bağlamsal bilgiler | Bağlam | data.context |
Uyarının etkinleştirildiği veya çözümlendiği zaman damgası | context.timestamp | data.context.timestamp |
Uyarı kuralı kimliği | context.id | data.context.id |
Uyarı kuralının adı | context.name | data.context.name |
Uyarı kuralının açıklaması | context.description | data.context.description |
Uyarı kuralı koşulu | context.condition | data.context.condition |
Ölçüm adı | context.condition.metricName | data.context.condition.allOf[0].metricName |
Zaman toplama (ölçümün değerlendirme penceresi üzerinde toplanma şekli) | context.condition.timeAggregation | context.condition.timeAggregation |
Değerlendirme dönemi | context.condition.windowSize | data.context.condition.windowSize |
İşleç (toplanan ölçüm değerinin eşikle karşılaştırılması) | context.condition.operator | data.context.condition.operator |
Eşik | context.condition.threshold | data.context.condition.allOf[0].threshold |
Ölçüm değeri | context.condition.metricValue | data.context.condition.allOf[0].metricValue |
Abonelik Kimliği | context.subscriptionId | data.context.subscriptionId |
Etkilenen kaynağın kaynak grubu | context.resourceGroup | data.context.resourceGroup |
Etkilenen kaynağın adı | context.resourceName | data.context.resourceName |
Etkilenen kaynağın türü | context.resourceType | data.context.resourceType |
Etkilenen kaynağın kaynak kimliği | context.resourceId | data.context.resourceId |
Portal kaynağı özet sayfasına doğrudan bağlantı | context.portalLink | data.context.portalLink |
Web kancasına veya mantıksal uygulamaya geçirilecek özel yük alanları | Özellikler | data.properties |
Gördüğünüz gibi yükler benzerdir. Aşağıdaki bölümde şunlar sunulmaktadır:
- Mantıksal uygulamaları yeni biçimle çalışacak şekilde değiştirme hakkındaki ayrıntılar.
- Yeni uyarılar için bildirim yükünü ayrıştıran bir runbook örneği.
Ölçüm uyarısı bildirimi almak için mantıksal uygulamayı değiştirme
Mantıksal uygulamaları klasik uyarılarla kullanıyorsanız, yeni ölçüm uyarıları yükünü ayrıştırmak için mantıksal uygulama kodunuzu değiştirmeniz gerekir. Şu adımları izleyin:
Yeni bir mantıksal uygulama oluşturun.
"Azure İzleyici - Ölçüm Uyarısı İşleyicisi" şablonunu kullanın. Bu şablonda, uygun şema tanımlı bir HTTP isteği tetikleyicisi var.
İşleme mantığınızı barındırmak için bir eylem ekleyin.
Ölçüm uyarısı bildirimi alan bir otomasyon runbook'u kullanma
Aşağıdaki örnekte runbook'unuzda kullanılacak PowerShell kodu verilmiştir. Bu kod, hem klasik ölçüm uyarı kuralları hem de yeni ölçüm uyarı kuralları için yükleri ayrıştırabilir.
## Example PowerShell code to use in a runbook to handle parsing of both classic and new metric alerts.
[OutputType("PSAzureOperationResponse")]
param
(
[Parameter (Mandatory=$false)]
[object] $WebhookData
)
$ErrorActionPreference = "stop"
if ($WebhookData)
{
# Get the data object from WebhookData.
$WebhookBody = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
# Determine whether the alert triggering the runbook is a classic metric alert or a new metric alert (depends on the payload schema).
$schemaId = $WebhookBody.schemaId
Write-Verbose "schemaId: $schemaId" -Verbose
if ($schemaId -eq "AzureMonitorMetricAlert") {
# This is the new metric alert schema.
$AlertContext = [object] ($WebhookBody.data).context
$status = ($WebhookBody.data).status
# Parse fields related to alert rule condition.
$metricName = $AlertContext.condition.allOf[0].metricName
$metricValue = $AlertContext.condition.allOf[0].metricValue
$threshold = $AlertContext.condition.allOf[0].threshold
$timeAggregation = $AlertContext.condition.allOf[0].timeAggregation
}
elseif ($schemaId -eq $null) {
# This is the classic metric alert schema.
$AlertContext = [object] $WebhookBody.context
$status = $WebhookBody.status
# Parse fields related to alert rule condition.
$metricName = $AlertContext.condition.metricName
$metricValue = $AlertContext.condition.metricValue
$threshold = $AlertContext.condition.threshold
$timeAggregation = $AlertContext.condition.timeAggregation
}
else {
# The schema is neither a classic metric alert nor a new metric alert.
Write-Error "The alert data schema - $schemaId - is not supported."
}
# Parse fields related to resource affected.
$ResourceName = $AlertContext.resourceName
$ResourceType = $AlertContext.resourceType
$ResourceGroupName = $AlertContext.resourceGroupName
$ResourceId = $AlertContext.resourceId
$SubId = $AlertContext.subscriptionId
## Your logic to handle the alert here.
}
else {
# Error
Write-Error "This runbook is meant to be started from an Azure alert webhook only."
}
Uyarı tetiklendiğinde sanal makineyi durduran bir runbook'un tam örneği için bkz. Azure Otomasyonu gerçekleştirme.
Web kancaları aracılığıyla iş ortağı tümleştirmesi
Klasik uyarılarla tümleşen iş ortaklarımızın çoğu, tümleştirmeleri aracılığıyla daha yeni ölçüm uyarılarını zaten destekliyor. Yeni ölçüm uyarılarıyla çalışan bilinen tümleştirmeler şunlardır:
Burada listelenmeyen bir iş ortağı tümleştirmesi kullanıyorsanız sağlayıcıdan yeni ölçüm uyarılarıyla çalıştığını onaylayın.