

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立規則檔案
<a name="AMP-ruler-rulesfile"></a>

若要在 Amazon Managed Service for Prometheus 中使用規則，您會建立定義規則的規則檔案。Amazon Managed Service for Prometheus 規則檔案是 YAML 文字檔案，其格式與獨立 Prometheus 中的規則檔案相同。如需詳細資訊，請參閱 *Prometheus* 文件中的[定義錄製規則](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)和[提醒規則](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。

以下是規則檔案的基本範例：

```
groups:
  - name: cpu_metrics
     interval: 60s
     rules:
      - record: avg_cpu_usage
        expr: avg(rate(node_cpu_seconds_total[5m])) by (instance)
      - alert: HighAverageCPU
        expr: avg_cpu_usage > 0.8
        for: 10m
        keep_firing_for: 20m
        labels:
          severity: critical
        annotations:
          summary: "Average CPU usage across cluster is too high"
```

此範例會建立每 60 秒評估一次`cpu_metrics`的規則群組。此規則群組會使用稱為 的錄製規則建立新的指標，`avg_cpu_usage`然後在提醒中使用該指標。以下說明使用的一些屬性。如需有關提醒規則和您可以包含的其他屬性的詳細資訊，請參閱 *Prometheus* 文件中的[提醒規則](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。
+ `record: avg_cpu_usage` – 此錄製規則會建立新的指標，稱為 `avg_cpu_usage`。
+ 如果未指定 `interval` 屬性，則規則群組的預設評估間隔為 60 秒。
+ `expr: avg(rate(node_cpu_seconds_total[5m])) by (instance)` – 錄製規則的此表達式會計算每個節點過去 5 分鐘內 CPU 使用率的平均速率，並依`instance`標籤分組。
+ `alert: HighAverageCPU` – 此提醒規則會建立新的提醒，稱為 `HighAverageCPU`
+ `expr: avg_cpu_usage > 0.8 ` – 此表達式會通知 警示尋找平均 CPU 用量超過 80% 的範例。
+ `for: 10m` – 只有在平均 CPU 用量超過 80% 至少 10 分鐘時，警示才會觸發。

  在此情況下，指標計算為過去 5 分鐘的平均值。因此，只有在至少有兩個連續的 5 分鐘範例 （總計 10 分鐘） 且平均 CPU 用量超過 80% 時，警示才會觸發。
+ `keep_firing_for: 20m` – 此提醒將繼續觸發，直到樣本低於閾值至少 20 分鐘。這有助於避免警示連續不斷上升和下降。

**注意**  
您可以在本機建立規則定義檔案，然後將其上傳至 Amazon Managed Service for Prometheus，也可以直接在 Amazon Managed Service for Prometheus 主控台中建立、編輯和上傳定義。無論哪種方式，都適用相同的格式化規則。若要進一步了解如何上傳和編輯檔案，請參閱 [將規則組態檔案上傳至 Amazon Managed Service for Prometheus](AMP-rules-upload.md)。