

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pantau metrik Spark dengan Amazon Managed Service untuk Prometheus
<a name="monitor-with-prometheus"></a>

Dengan Amazon EMR rilis 7.1.0 dan yang lebih tinggi, Anda dapat mengintegrasikan EMR Tanpa Server dengan Amazon Managed Service untuk Prometheus guna mengumpulkan metrik Apache Spark untuk pekerjaan dan aplikasi EMR Tanpa Server. Integrasi ini tersedia saat Anda mengirimkan pekerjaan atau membuat aplikasi menggunakan AWS konsol, EMR Serverless API, atau. AWS CLI

## Prasyarat
<a name="monitoring-with-prometheus-prereqs"></a>

Sebelum Anda dapat mengirimkan metrik Spark Anda ke Amazon Managed Service untuk Prometheus, lengkapi prasyarat berikut.
+ [Buat Layanan Terkelola Amazon untuk ruang kerja Prometheus.](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) Ruang kerja ini berfungsi sebagai titik akhir konsumsi. Catat URL yang ditampilkan untuk **Endpoint - URL tulis jarak jauh**. Anda harus menentukan URL saat membuat aplikasi EMR Tanpa Server.
+ Untuk memberikan akses pekerjaan Anda ke Amazon Managed Service untuk Prometheus untuk tujuan pemantauan, tambahkan kebijakan berikut ke peran pelaksanaan pekerjaan Anda.

  ```
  {
      "Sid": "AccessToPrometheus",
      "Effect": "Allow",
      "Action": ["aps:RemoteWrite"],
      "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>"
  }
  ```

## Pengaturan
<a name="monitoring-with-prometheus-setup"></a>

**Untuk menggunakan AWS konsol untuk membuat aplikasi yang terintegrasi dengan Amazon Managed Service untuk Prometheus**

1. Lihat [Memulai Amazon EMR Tanpa Server untuk membuat aplikasi](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html                             ).

1. Saat Anda membuat aplikasi, pilih **Gunakan pengaturan khusus**, lalu konfigurasikan aplikasi Anda dengan menentukan informasi ke dalam bidang yang ingin Anda konfigurasikan.

1. Di bawah **Log dan metrik aplikasi**, pilih **Mengirimkan metrik engine ke Amazon Managed Service for Prometheus**, lalu tentukan URL penulisan jarak jauh Anda.

1. Tentukan pengaturan konfigurasi lain yang Anda inginkan, lalu pilih **Buat dan mulai aplikasi**.

**Gunakan API Tanpa AWS CLI Server EMR atau EMR**

Anda juga dapat menggunakan API Tanpa Server EMR AWS CLI atau EMR untuk mengintegrasikan aplikasi EMR Tanpa Server Anda dengan Amazon Managed Service for Prometheus saat menjalankan atau perintah. `create-application` `start-job-run`

------
#### [ create-application ]

```
aws emr-serverless create-application \
--release-label emr-7.1.0 \
--type "SPARK" \
--monitoring-configuration '{ 
    "prometheusMonitoringConfiguration": {
        "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write"
    }
}'
```

------
#### [ start-job-run ]

```
aws emr-serverless start-job-run \
--application-id <APPPLICATION_ID> \
--execution-role-arn <JOB_EXECUTION_ROLE> \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
        "entryPointArguments": ["10000"],
        "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10"
    }
}' \
--configuration-overrides '{
     "monitoringConfiguration": {
        "prometheusMonitoringConfiguration": {
            "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write"
        }
    }
}'
```

------

Termasuk `prometheusMonitoringConfiguration` dalam perintah Anda menunjukkan bahwa EMR Tanpa Server harus menjalankan pekerjaan Spark dengan agen yang mengumpulkan metrik Spark dan menuliskannya ke titik `remoteWriteUrl` akhir Anda untuk Amazon Managed Service for Prometheus. Anda kemudian dapat menggunakan metrik Spark di Amazon Managed Service for Prometheus untuk visualisasi, peringatan, dan analisis.

## Properti konfigurasi lanjutan
<a name="monitoring-with-prometheus-config-options"></a>

EMR Tanpa Server menggunakan komponen dalam nama Spark `PrometheusServlet` untuk mengumpulkan metrik Spark dan menerjemahkan data kinerja ke dalam data yang kompatibel dengan Amazon Managed Service for Prometheus. Secara default, EMR Tanpa Server menetapkan nilai default di Spark dan mengurai metrik driver dan pelaksana saat Anda mengirimkan pekerjaan menggunakan. `PrometheusMonitoringConfiguration` 

Tabel berikut menjelaskan semua properti yang dikonfigurasi saat mengirimkan pekerjaan Spark yang mengirimkan metrik ke Amazon Managed Service untuk Prometheus.


| Properti percikan | Nilai default | Deskripsi | 
| --- | --- | --- | 
| spark.metrics.conf.\$1.sink.prometheusServlet.class | org.apache.spark.metrics.sink. PrometheusServlet | Kelas yang digunakan Spark untuk mengirim metrik ke Amazon Managed Service untuk Prometheus. Untuk mengganti perilaku default, tentukan kelas kustom Anda sendiri. | 
| spark.metrics.conf.\$1.source.jvm.class | org.apache.spark.metrics.source. JvmSource | Kelas Spark digunakan untuk mengumpulkan dan mengirim metrik penting dari mesin virtual Java yang mendasarinya. Untuk berhenti mengumpulkan metrik JVM, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti. `""` Untuk mengganti perilaku default, tentukan kelas kustom Anda sendiri.  | 
| spark.metrics.conf.driver.sink.prometheusServlet.path | /metrik/prometheus | URL berbeda yang digunakan Amazon Managed Service untuk Prometheus untuk mengumpulkan metrik dari driver. Untuk mengganti perilaku default, tentukan jalur Anda sendiri. Untuk berhenti mengumpulkan metrik driver, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti`""`. | 
| spark.metrics.conf.executor.sink.prometheusServlet.path | /metrics/executor/prometheus | URL berbeda yang digunakan Amazon Managed Service untuk Prometheus untuk mengumpulkan metrik dari pelaksana. Untuk mengganti perilaku default, tentukan jalur Anda sendiri. Untuk berhenti mengumpulkan metrik pelaksana, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti. `""` | 

Untuk informasi selengkapnya tentang metrik Spark, lihat metrik [Apache](https://spark.apache.org/docs/3.5.0/monitoring.html#metrics) Spark.

## Pertimbangan dan batasan
<a name="monitoring-with-prometheus-limitations"></a>

Saat menggunakan Amazon Managed Service for Prometheus untuk mengumpulkan metrik dari EMR Tanpa Server, pertimbangkan pertimbangan dan batasan berikut.
+ Dukungan untuk menggunakan Amazon Managed Service untuk Prometheus dengan EMR Serverless hanya tersedia di [tempat Amazon Managed Service untuk Prometheus Wilayah AWS umumnya](https://docs.aws.amazon.com/general/latest/gr/prometheus-service.html) tersedia.
+ Menjalankan agen untuk mengumpulkan metrik Spark di Amazon Managed Service untuk Prometheus membutuhkan lebih banyak sumber daya dari pekerja. Jika Anda memilih ukuran pekerja yang lebih kecil, seperti satu pekerja vCPU, waktu kerja Anda mungkin meningkat.
+ Dukungan untuk menggunakan Amazon Managed Service untuk Prometheus dengan EMR Tanpa Server hanya tersedia untuk Amazon EMR rilis 7.1.0 dan yang lebih tinggi.
+ Layanan Terkelola Amazon untuk Prometheus harus diterapkan di akun yang sama tempat Anda menjalankan EMR Tanpa Server untuk mengumpulkan metrik.