

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

# 使用 Amazon Managed Service for Prometheus 監控 Flink 任務
<a name="jobruns-flink-monitoring-prometheus"></a>

可以整合 Apache Flink 與 Amazon Managed Service for Prometheus (管理入口網站)。Amazon Managed Service for Prometheus 支援從在 Amazon EKS 上執行的叢集的 Amazon Managed Service 中擷取指標。Amazon Managed Service for Prometheus 與 Amazon EKS 叢集上已經執行的 Prometheus 伺服器搭配使用。執行 Amazon Managed Service for Prometheus 與 Amazon EMR Flink Operator 的整合將自動部署和設定 Prometheus 伺服器，以便與 Amazon Managed Service for Prometheus 整合。

1. [ 建立 Amazon Managed Service for Prometheus 工作區](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html)。此工作區用作擷取端點。您稍後將需要遠端寫入 URL。

1. 設定服務帳戶的 IAM 角色。

   對於這種加入方法，請針對執行 Prometheus 伺服器的 Amazon EKS 叢集中的服務帳戶使用 IAM 角色。這些角色也稱為*服務角色*。

   如果您還沒有這些角色，[請設定服務角色，以便從 Amazon EKS 叢集中擷取指標](https://docs.aws.amazon.com/prometheus/latest/userguide/set-up-irsa.html)。

   在繼續之前，請先建立名為 `amp-iamproxy-ingest-role` 的 IAM 角色。

1. 安裝 Amazon EMR Flink Operator 與 Amazon Managed Service for Prometheus。

現在您擁有 Amazon Managed Service for Prometheus 工作區、Amazon Managed Service for Prometheus 的專用 IAM 角色以及必要的許可，可以安裝 Amazon EMR Flink Operator。

建立 `enable-amp.yaml` 檔案。此檔案可讓您使用自訂組態來覆寫 Amazon Managed Service for Prometheus 設定。請務必使用您自己的角色。

```
kube-prometheus-stack:
    prometheus:
    serviceAccount:
        create: true
        name: "amp-iamproxy-ingest-service-account"
        annotations:
            eks.amazonaws.com/role-arn: "arn:aws:iam::<AWS_ACCOUNT_ID>:role/amp-iamproxy-ingest-role"
    remoteWrite:
        - url: <AMAZON_MANAGED_PROMETHEUS_REMOTE_WRITE_URL>
        sigv4:
            region: <AWS_REGION>
        queueConfig:
            maxSamplesPerSend: 1000
            maxShards: 200
            capacity: 2500
```

使用 [https://helm.sh/docs/helm/helm_install/](https://helm.sh/docs/helm/helm_install/) 命令將覆寫傳遞至 `flink-kubernetes-operator` 圖表。

```
helm upgrade -n <namespace> flink-kubernetes-operator \
   oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \
   --set prometheus.enabled=true
   -f enable-amp.yaml
```

此命令會自動在連接埠 9999 的運算子中安裝 Prometheus 報告程式。任何未來的 `FlinkDeployment` 也會在 9249 上公開 `metrics` 連接埠。
+ Flink Operator 指標會顯示在標籤 `flink_k8soperator_` 下的 Prometheus 中。
+ Flink Task Manager 指標會顯示在標籤 `flink_taskmanager_` 下的 Prometheus 中。
+ Flink Job Manager 指標會顯示在標籤 `flink_jobmanager_` 下的 Prometheus 中。