Aracılığıyla paylaş


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:

  1. Yeni bir mantıksal uygulama oluşturun.

  2. "Azure İzleyici - Ölçüm Uyarısı İşleyicisi" şablonunu kullanın. Bu şablonda, uygun şema tanımlı bir HTTP isteği tetikleyicisi var.

    Boş Mantıksal Uygulama ve Azure İzleyici – Ölçüm Uyarısı İşleyicisi şeklindeki iki düğmeyi gösteren ekran görüntüsü.

  3. İş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.

Sonraki adımlar