Contoh kebijakan di JSON

Dokumen ini memberikan contoh kebijakan pemberitahuan. Sample ditulis dalam JSON, dan menggunakan Filter pemantauan. Anda dapat membuat kebijakan dalam JSON atau YAML, terlepas dari apakah Anda menentukan kebijakan dengan menggunakan filter Pemantauan atau Monitoring Query Language (MQL). Google Cloud CLI dapat membaca dan menulis JSON dan YAML, sedangkan REST API dapat membaca JSON.

Untuk contoh kebijakan pemberitahuan yang menggunakan MQL, lihat dokumen berikut:

Untuk informasi tentang cara mengonfigurasi kolom kebijakan pemberitahuan, lihat hal berikut:

Membuat YAML untuk kebijakan yang ada

Untuk membuat representasi YAML kebijakan pemberitahuan yang ada, gunakan perintah gcloud alpha monitoring policies list untuk mencantumkan kebijakan dan perintah gcloud alpha monitoring policies describe untuk mencetak kebijakan.

Untuk membuat representasi YAML dari saluran notifikasi yang ada, gunakan perintah gcloud alpha monitoring channels list untuk mencantumkan saluran dan perintah gcloud alpha monitoring channels describe untuk mencetak konfigurasi saluran.

Jika Anda tidak menyertakan flag --format dalam perintah Google Cloud CLI, formatnya akan ditetapkan secara default ke YAML untuk kedua perintah gcloud ... describe.

Misalnya, perintah gcloud alpha monitoring policies describe berikut mengambil satu kebijakan bernama projects/a-gcp-project/alertPolicies/12669073143329903307 dan pengalihan (>) menyalin output ke file test-policy.yaml:

gcloud alpha monitoring policies describe projects/a-gcp-project/alertPolicies/12669073143329903307 > test-policy.yaml

Membuat JSON untuk kebijakan yang ada

Untuk membuat representasi JSON dari kebijakan pemberitahuan dan saluran notifikasi yang ada, lakukan salah satu hal berikut:

Contoh kebijakan

Seperti yang ditunjukkan dalam contoh pencadangan/pemulihan, Anda dapat menggunakan kebijakan tersimpan untuk membuat salinan baru kebijakan tersebut.

Anda dapat menggunakan kebijakan yang disimpan di satu project untuk membuat kebijakan baru, atau yang serupa, di project lain. Namun, Anda harus melakukan perubahan berikut terlebih dahulu dalam salinan kebijakan tersimpan:

  • Hapus kolom berikut dari saluran notifikasi apa pun:
    • name
    • verificationStatus
  • Buat saluran notifikasi sebelum merujuk ke saluran dalam kebijakan pemberitahuan (Anda memerlukan ID saluran baru).
  • Hapus kolom berikut dari kebijakan pemberitahuan yang Anda buat ulang:
    • name
    • condition.name
    • creationRecord
    • mutationRecord

Kebijakan dalam dokumen ini diatur menggunakan terminologi yang sama dengan yang digunakan Monitoring di konsol Google Cloud, misalnya, "kebijakan rasio perubahan", dan ada dua jenis kondisi:

  • Kondisi nilai minimum; hampir semua jenis kebijakan yang disebutkan di UI adalah varian dari kondisi nilai minimum
  • Kondisi ketidakhadiran

Dalam contoh berikut, kondisi ini sesuai dengan conditionThreshold dan conditionAbsent. Untuk informasi selengkapnya, lihat halaman referensi untuk Condition.

Anda dapat membuat banyak kebijakan ini secara manual, menggunakan Konsol Google Cloud, tetapi beberapa kebijakan hanya dapat dibuat menggunakan Monitoring API. Untuk informasi selengkapnya, lihat Membuat kebijakan pemberitahuan (UI) atau Membuat kebijakan pemberitahuan menggunakan API.

Kebijakan batas metrik

Kebijakan nilai minimum metrik mendeteksi saat beberapa nilai melampaui batas yang telah ditentukan sebelumnya. Kebijakan nilai minimum memungkinkan Anda mengetahui bahwa ada sesuatu yang mendekati titik penting, sehingga Anda dapat mengambil tindakan. Misalnya, kondisi untuk kebijakan nilai minimum metrik terpenuhi saat ruang disk yang tersedia menjadi kurang dari 10 persen dari total ruang disk.

Kebijakan pemberitahuan berikut menggunakan penggunaan CPU rata-rata sebagai indikator kesehatan sekelompok VM. Kondisi kebijakan terpenuhi saat pemakaian CPU VM rata-rata dalam project, yang diukur selama interval 60 detik, melebihi nilai minimum pemakaian 90 persen selama 15 menit (900 detik):

{
    "displayName": "Very high CPU usage",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "CPU usage is extremely high",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                            "project"
                        ],
                        "perSeriesAligner": "ALIGN_MAX"
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "900s",
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
                          AND resource.type=\"gce_instance\"",
                "thresholdValue": 0.9,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

Kebijakan tanpa metrik

Kondisi tidak adanya metrik terpenuhi jika tidak ada data yang ditulis ke metrik dalam rentang waktu yang ditentukan oleh kolom duration.

Salah satu cara untuk menunjukkan hal ini adalah dengan membuat metrik kustom.

Berikut adalah contoh deskripsi untuk metrik kustom. Anda dapat membuat metrik menggunakan APIs Explorer.

{
  "description": "Number of times the pipeline has run",
  "displayName": "Pipeline runs",
  "metricKind": "GAUGE",
  "type": "custom.googleapis.com/pipeline_runs",
  "labels": [
    {
      "description": "The name of the pipeline",
      "key": "pipeline_name",
      "valueType": "STRING"
    },
  ],
  "unit": "1",
  "valueType": "INT64"
}

Lihat Ringkasan metrik yang ditentukan pengguna untuk informasi selengkapnya.

Kondisi dalam kebijakan pemberitahuan berikut terpenuhi saat data berhenti ditulis ke metrik selama sekitar satu jam: dengan kata lain, pipeline per jam Anda gagal berjalan. Perhatikan bahwa kondisi yang digunakan di sini adalah conditionAbsent.

{
    "displayName": "Data ingestion functioning",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Hourly pipeline is up",
            "conditionAbsent": {
                "duration": "3900s",
                "filter": "resource.type=\"global\"
                          AND metric.type=\"custom.googleapis.com/pipeline_runs\"
                          AND metric.label.pipeline_name=\"hourly\"",
            }
        }
    ],
}

Kebijakan perkiraan

Kondisi perkiraan terpenuhi jika hal berikut terjadi:

  • Semua perkiraan untuk deret waktu sama dalam rentang waktu yang ditentukan oleh kolom duration.
  • Cloud Monitoring memperkirakan bahwa deret waktu akan melanggar nilai minimum dalam jangka waktu perkiraan.

Kondisi perkiraan adalah kondisi nilai minimum metrik yang dikonfigurasi untuk menggunakan perkiraan. Seperti yang diilustrasikan dalam contoh berikut, kondisi ini menyertakan kolom forecastOptions yang memungkinkan peramalan dan menentukan jangka peramalan. Dalam contoh berikut, jangka waktu perkiraan ditetapkan ke satu jam, yang merupakan nilai minimum:

{
    "displayName": "NFS free bytes alert",
    "combiner": "OR",
    "conditions": [
      {
        "displayName": "Filestore Instance - Free disk space percent",
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "300s",
              "perSeriesAligner": "ALIGN_MEAN"
            }
          ],
          "comparison": "COMPARISON_LT",
          "duration": "900s",
          "filter": "resource.type = \"filestore_instance\" AND metric.type = \"file.googleapis.com/nfs/server/free_bytes_percent\"",
          "forecastOptions": {
            "forecastHorizon": "3600s"
          },
          "thresholdValue": 20,
          "trigger": {
            "count": 1
          }
        }
      }
    ],
}

Kebijakan laju perubahan

Kondisi rasio perubahan terpenuhi saat nilai dalam deret waktu meningkat, atau menurun, setidaknya sebesar persentase yang ditentukan oleh nilai minimum. Saat Anda membuat jenis kondisi ini, komputasi persentase perubahan diterapkan ke deret waktu sebelum dibandingkan dengan nilai minimum.

Kondisi ini menghitung rata-rata nilai metrik dari 10 menit terakhir, lalu membandingkan hasilnya dengan rata-rata 10 menit yang diukur tepat sebelum periode penyelarasan dimulai. Anda tidak dapat mengubah periode 10 menit yang digunakan untuk perbandingan dalam kebijakan pemberitahuan rasio perubahan. Namun, Anda menentukan periode penyesuaian saat membuat kondisi.

Kebijakan pemberitahuan ini memantau apakah penggunaan CPU meningkat dengan cepat:

{
  "displayName": "High CPU rate of change",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "CPU usage is increasing at a high rate",
      "conditionThreshold": {
         "aggregations": [
           {
             "alignmentPeriod": "900s",
             "perSeriesAligner": "ALIGN_PERCENT_CHANGE",
           }],
        "comparison": "COMPARISON_GT",
        "duration": "180s",
        "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
        "thresholdValue": 0.5,
        "trigger": {
          "count": 1
         }
      }
    }
  ],
}

Kebijakan agregat grup

Kebijakan pemberitahuan ini memantau apakah penggunaan CPU rata-rata di seluruh cluster Google Kubernetes Engine melebihi nilai minimum:

{
    "displayName": "CPU utilization across GKE cluster exceeds 10 percent",
    "combiner": "OR",
    "conditions": [
         {
            "displayName": "Group Aggregate Threshold across All Instances in Group GKE cluster",
            "conditionThreshold": {
                "filter": "group.id=\"3691870619975147604\" AND metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.1,
                "duration": "300s",
                "trigger": {
                    "count": 1
                },
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_MEAN",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                              "project"
                        ]
                    },
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_SUM",
                        "crossSeriesReducer": "REDUCE_MEAN"
                    }
                ]
            },
        }
    ],
}

Kebijakan ini mengasumsikan keberadaan grup berikut:

    {
        "name": "projects/a-gcp-project/groups/3691870619975147604",
        "displayName": "GKE cluster",
        "filter": "resource.metadata.name=starts_with(\"gke-kuber-cluster-default-pool-6fe301a0-\")"
    }

Untuk mengidentifikasi kolom yang setara untuk grup Anda, cantumkan detail grup menggunakan API Explorer di halaman referensi project.groups.list.

Kebijakan cek uptime

Status cek uptime muncul di halaman Cek uptime, tetapi Anda dapat mengonfigurasi kebijakan pemberitahuan agar Cloud Monitoring mengirimkan notifikasi jika cek uptime gagal.

Misalnya, JSON berikut menjelaskan pemeriksaan uptime HTTPS di situs Google Cloud. Kebijakan pemberitahuan memeriksa ketersediaan setiap 5 menit.

Pemeriksaan uptime dibuat dengan konsol Google Cloud. Representasi JSON di sini dibuat dengan mencantumkan pemeriksaan uptime dalam project menggunakan Monitoring API; lihat uptimeCheckConfigs.list. Anda juga dapat membuat pemeriksaan uptime dengan Monitoring API.

{
    "name": "projects/a-gcp-project/uptimeCheckConfigs/uptime-check-for-google-cloud-site",
    "displayName": "Uptime check for Google Cloud site",
    "monitoredResource": {
        "type": "uptime_url",
        "labels": {
            "host": "cloud.google.com"
      }
    },
    "httpCheck": {
        "path": "/index.html",
        "useSsl": true,
        "port": 443,
        "authInfo": {}
    },
    "period": "300s",
    "timeout": "10s",
    "contentMatchers": [
        {}
    ]
}

Untuk membuat kebijakan pemberitahuan untuk cek uptime, lihat cek uptime berdasarkan UPTIME_CHECK_ID-nya. ID ini ditetapkan saat pemeriksaan dibuat; ID ini muncul sebagai komponen terakhir kolom name dan terlihat di UI sebagai Check ID dalam ringkasan konfigurasi. Jika Anda menggunakan Monitoring API, metode uptimeCheckConfigs.create akan menampilkan ID.

ID berasal dari displayName, yang ditetapkan di UI dalam hal ini. Hal ini dapat diverifikasi dengan mencantumkan pemeriksaan uptime dan melihat nilai name.

ID untuk pemeriksaan uptime yang dijelaskan sebelumnya adalah uptime-check-for-google-cloud-site.

Kondisi kebijakan pemberitahuan berikut terpenuhi jika pemeriksaan uptime gagal atau jika masa berlaku sertifikat SSL di situs Google Cloud akan berakhir dalam waktu kurang dari 15 hari. Jika salah satu kondisi terpenuhi, Monitoring akan mengirimkan notifikasi ke saluran notifikasi yang ditentukan:

{
    "displayName": "Google Cloud site uptime failure",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Failure of uptime check_id uptime-check-for-google-cloud-site",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_COUNT_FALSE",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 1,
                "trigger": {
                    "count": 1
                }
            }
        },
        {
            "displayName": "SSL Certificate for google-cloud-site expiring soon",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_LT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 15,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

Filter dalam kondisi menentukan metrik yang sedang dipantau berdasarkan jenis dan labelnya. Jenis metriknya adalah monitoring.googleapis.com/uptime_check/check_passed dan monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires. Label metrik mengidentifikasi pemeriksaan uptime tertentu yang sedang dipantau. Dalam contoh ini, kolom label check_id berisi ID pemeriksaan uptime.

AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"

Lihat Filter pemantauan untuk mengetahui informasi selengkapnya.

Kebijakan kondisi proses

Kebijakan kesehatan proses dapat memberi tahu Anda jika jumlah proses yang cocok dengan pola melampaui nilai minimum. Hal ini dapat digunakan untuk memberi tahu Anda, misalnya, bahwa proses telah berhenti berjalan.

Kebijakan pemberitahuan ini menyebabkan Monitoring mengirim notifikasi ke saluran notifikasi yang ditentukan jika tidak ada proses yang cocok dengan string nginx, yang berjalan sebagai pengguna www, yang telah tersedia selama lebih dari 5 menit:

{
    "displayName": "Server health",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Process 'nginx' is not running",
            "conditionThreshold": {
                "filter": "select_process_count(\"has_substring(\\\"nginx\\\")\", \"www\") AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_LT",
                "thresholdValue": 1,
                "duration": "300s"
            }
        }
    ],
}

Untuk mengetahui informasi selengkapnya, lihat Status proses.

Rasio metrik

Sebaiknya gunakan Monitoring Query Language (MQL) untuk membuat kebijakan pemberitahuan berbasis rasio. Meskipun Cloud Monitoring API mendukung pembuatan beberapa rasio berbasis filter, MQL memberikan solusi yang lebih fleksibel dan andal:

Bagian ini menjelaskan rasio berbasis filter. Dengan API ini, Anda dapat membuat dan melihat kebijakan yang menghitung rasio dua metrik terkait dan diaktifkan saat rasio tersebut melampaui nilai minimum. Metrik terkait harus memiliki MetricKind yang sama. Misalnya, Anda dapat membuat kebijakan pemberitahuan berbasis rasio jika kedua metrik tersebut adalah metrik pengukur. Untuk menentukan MetricKind jenis metrik, lihat Daftar metrik.

Kondisi rasio adalah varian pada kondisi nilai minimum metrik, dengan kondisi dalam kebijakan rasio menggunakan dua filter: filter biasa, yang berfungsi sebagai pembilang rasio, dan denominatorFilter, yang berfungsi sebagai penyebut rasio.

Deret waktu dari kedua filter harus digabungkan dengan cara yang sama, sehingga komputasi rasio nilainya bermakna. Kondisi kebijakan pemberitahuan terpenuhi jika rasio filter melanggar nilai minimum untuk rentang waktu yang ditentukan oleh kolom duration.

Bagian berikutnya menjelaskan cara mengonfigurasi kebijakan pemberitahuan yang memantau rasio respons error HTTP terhadap semua respons HTTP.

Rasio error HTTP

Kebijakan pemberitahuan berikut memiliki kondisi nilai minimum yang dibuat berdasarkan rasio jumlah respons error HTTP terhadap jumlah semua respons HTTP.

{
    "displayName": "HTTP error count exceeds 50 percent for App Engine apps",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Ratio: HTTP 500s error-response counts / All HTTP response counts",
            "conditionThreshold": {
                 "filter": "metric.label.response_code>=\"500\" AND
                            metric.label.response_code<\"600\" AND
                            metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                            project=\"a-gcp-project\" AND
                            resource.type=\"gae_app\"",
                 "aggregations": [
                    {
                        "alignmentPeriod": "300s",
                        "crossSeriesReducer": "REDUCE_SUM",
                        "groupByFields": [
                          "project",
                          "resource.label.module_id",
                          "resource.label.version_id"
                        ],
                        "perSeriesAligner": "ALIGN_DELTA"
                    }
                ],
                "denominatorFilter": "metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                                      project=\"a-gcp-project\" AND
                                      resource.type=\"gae_app\"",
                "denominatorAggregations": [
                   {
                      "alignmentPeriod": "300s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "project",
                        "resource.label.module_id",
                        "resource.label.version_id"
                       ],
                      "perSeriesAligner": "ALIGN_DELTA",
                    }
                ],
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.5,
                "duration": "0s",
                "trigger": {
                    "count": 1
                }
            }
        }
    ]
}

Jenis metrik dan resource

Jenis metrik untuk kebijakan ini adalah appengine.googleapis.com/http/server/response_count, yang memiliki dua label:

  • response_code, bilangan bulat 64-bit yang mewakili kode status HTTP untuk permintaan. Kebijakan ini memfilter data deret waktu pada label ini, sehingga dapat menentukan hal berikut:
    • Jumlah respons yang diterima.
    • Jumlah respons error yang diterima.
    • Rasio respons error terhadap semua respons.
  • loading, nilai boolean yang menunjukkan apakah permintaan sedang dimuat. Label loading tidak relevan dalam kebijakan pemberitahuan ini.

Kebijakan pemberitahuan mengevaluasi data respons dari aplikasi App Engine, yaitu data yang berasal dari jenis resource yang dipantau gae_app. Resource yang dipantau ini memiliki tiga label:

  • project_id, ID untuk project Google Cloud.
  • module_id, nama layanan atau modul di aplikasi.
  • version_id, versi aplikasi.

Untuk informasi referensi tentang metrik dan jenis resource yang dimonitor ini, lihat Metrik App Engine dalam daftar metrik dan entri gae_app dalam daftar resource yang dimonitor.

Fungsi kebijakan ini

Kondisi ini menghitung rasio respons error terhadap total respons. Kondisi terpenuhi jika rasionya lebih besar dari 50% (yaitu, rasionya lebih besar dari 0,5) selama periode perataan 5 menit.

Kebijakan ini menangkap modul dan versi aplikasi yang melanggar kondisi dengan mengelompokkan deret waktu di setiap filter berdasarkan nilai label tersebut.

  • Filter dalam kondisi melihat respons HTTP dari aplikasi App Engine dan memilih respons tersebut dalam rentang error, 5xx. Ini adalah pembilang dalam rasio.
  • Filter denominator dalam kondisi melihat semua respons HTTP dari aplikasi App Engine.

Kondisi terpenuhi dan Monitoring akan segera mengirim notifikasi untuk insiden baru; rentang waktu yang diizinkan untuk kolom duration dalam kondisi adalah nol detik. Kondisi ini menggunakan jumlah trigger satu, yaitu jumlah deret waktu yang perlu melanggar kondisi untuk menyebabkan insiden. Untuk aplikasi App Engine dengan satu layanan, jumlah trigger satu tidak masalah. Jika Anda memiliki aplikasi dengan 20 layanan dan ingin menyebabkan insiden jika 3 layanan atau lebih melanggar kondisi, gunakan jumlah trigger 3.

Menyiapkan rasio

Filter pembilang dan penyebut sama persis, kecuali bahwa filter kondisi di pembilang cocok dengan kode respons dalam rentang error, dan filter kondisi di penyebut cocok dengan semua kode respons. Klausa berikut hanya muncul dalam kondisi pembilang:

      metric.label.response_code>=\"500\" AND
      metric.label.response_code<\"600\"

Jika tidak, filter numerator dan denominator akan sama.

Deret waktu yang dipilih oleh setiap filter harus digabungkan dengan cara yang sama agar penghitungan rasio valid. Setiap filter dapat mengumpulkan beberapa deret waktu, karena akan ada deret waktu yang berbeda untuk setiap kombinasi nilai label. Kebijakan ini mengelompokkan kumpulan deret waktu menurut label resource yang ditentukan, yang mempartisi kumpulan deret waktu menjadi kumpulan grup. Beberapa deret waktu dalam setiap grup cocok dengan filter pembilang; selebihnya cocok dengan filter penyebut.

Untuk menghitung rasio, kumpulan deret waktu yang cocok dengan setiap filter harus digabungkan ke satu deret waktu. Hal ini akan membuat setiap grup memiliki dua deret waktu, satu untuk pembilang dan satu untuk penyebut. Selanjutnya, rasio titik dalam deret waktu pembilang dan penyebut di setiap grup dapat dihitung.

Dalam kebijakan ini, deret waktu untuk kedua filter digabungkan sebagai berikut:

  • Setiap filter membuat sejumlah deret waktu yang diselaraskan dengan interval 5 menit, dengan nilai yang direpresentasikan dengan menghitung ALIGN_DELTA pada nilai dalam periode penyelarasan 5 menit tersebut. Pengatur selar ini menampilkan jumlah respons yang cocok dalam periode perataan tersebut sebagai bilangan bulat 64-bit.

  • Deret waktu dalam setiap filter juga dikelompokkan berdasarkan nilai label resource untuk modul dan versi, sehingga setiap grup akan berisi dua kumpulan deret waktu yang diselaraskan, yang cocok dengan filter pembilang dan yang cocok dengan filter penyebut.

  • Deret waktu dalam setiap grup yang cocok dengan filter pembilang atau penyebut digabungkan menjadi satu waktu dengan menjumlahkan nilai dalam setiap deret waktu menggunakan pengurangan lintas deret REDUCER_SUM. Hal ini menghasilkan satu deret waktu untuk pembilang dan satu untuk pembilang, yang masing-masing melaporkan jumlah respons di semua deret waktu yang cocok dalam periode penyelarasan.

Kebijakan kemudian menghitung rasio nilai untuk deret waktu pembilang dan penyebut yang mewakili setiap grup. Kondisi untuk kebijakan pemberitahuan terpenuhi jika rasionya lebih besar dari 50 persen.