

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Überwachen Sie Spark-Metriken mit Amazon Managed Service für Prometheus
<a name="monitor-with-prometheus"></a>

Mit den Amazon EMR-Versionen 7.1.0 und höher können Sie EMR Serverless in Amazon Managed Service for Prometheus integrieren, um Apache Spark-Metriken für EMR-Serverless-Jobs und -Anwendungen zu erfassen. Diese Integration ist verfügbar, wenn Sie einen Job einreichen oder eine Anwendung erstellen, indem Sie entweder die AWS Konsole, die EMR Serverless-API oder die verwenden. AWS CLI

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

Bevor Sie Ihre Spark-Metriken an Amazon Managed Service for Prometheus übermitteln können, müssen Sie die folgenden Voraussetzungen erfüllen.
+ [Erstellen Sie einen Amazon Managed Service für Prometheus Workspace. ](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) Dieser Workspace dient als Aufnahme-Endpunkt. Notieren Sie sich die URL, die für ** Endpoint — Remote Write URL angezeigt wird**. Sie müssen die URL angeben, wenn Sie Ihre EMR Serverless-Anwendung erstellen.
+ Um Amazon Managed Service for Prometheus zu Überwachungszwecken Zugriff auf Ihre Jobs zu gewähren, fügen Sie Ihrer Rolle zur Auftragsausführung die folgende Richtlinie hinzu.

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

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

**Um das AWS Konsole zum Erstellen einer Anwendung, die in Amazon Managed Service for Prometheus integriert ist**

1. Informationen zum Erstellen einer Anwendung finden Sie unter [ Erste Schritte mit Amazon EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html                             ).

1. Wählen Sie beim Erstellen einer Anwendung die Option Benutzerdefinierte Einstellungen ** verwenden aus und konfigurieren Sie dann Ihre Anwendung**, indem Sie die Informationen in die Felder eingeben, die Sie konfigurieren möchten.

1. Wählen Sie unter ** Anwendungsprotokolle und Metriken ** die Option Engine-Metriken an Amazon Managed Service for Prometheus ** liefern aus**, und geben Sie dann Ihre Remote-Write-URL an.

1. Geben Sie alle anderen gewünschten Konfigurationseinstellungen an und wählen Sie dann Anwendung ** erstellen und starten aus. **

**Verwenden Sie die AWS CLI oder EMR Serverless API **

Sie können auch die AWS CLI oder EMR Serverless API verwenden, um Ihre EMR Serverless-Anwendung in Amazon Managed Service for Prometheus zu integrieren, wenn Sie die oder die Befehle ausführen. `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"
        }
    }
}'
```

------

Die Angabe `prometheusMonitoringConfiguration` in Ihrem Befehl bedeutet, dass EMR Serverless den Spark-Job mit einem Agenten ausführen muss, der die Spark-Metriken erfasst und sie für Amazon Managed Service for Prometheus auf Ihren `remoteWriteUrl` Endpunkt schreibt. Anschließend können Sie die Spark-Metriken in Amazon Managed Service for Prometheus für Visualisierungen, Warnmeldungen und Analysen verwenden.

## Erweiterte Konfigurationseigenschaften
<a name="monitoring-with-prometheus-config-options"></a>

EMR Serverless verwendet eine Komponente innerhalb von Spark, die `PrometheusServlet` zur Erfassung von Spark-Metriken benannt ist, und übersetzt Leistungsdaten in Daten, die mit Amazon Managed Service for Prometheus kompatibel sind. Standardmäßig legt EMR Serverless Standardwerte in Spark fest und analysiert Treiber- und Executor-Metriken, wenn Sie einen Job mit senden. `PrometheusMonitoringConfiguration` 

In der folgenden Tabelle werden alle Eigenschaften beschrieben, die beim Senden eines Spark-Jobs konfiguriert werden, der Metriken an Amazon Managed Service for Prometheus sendet.


| Spark-Eigenschaft | Standardwert | Description | 
| --- | --- | --- | 
| spark.metrics.conf.\*.sink.prometheusServlet.class | org.apache.spark.metrics.sink. PrometheusServlet | Die Klasse, die Spark verwendet, um Metriken an Amazon Managed Service for Prometheus zu senden. Um das Standardverhalten außer Kraft zu setzen, geben Sie Ihre eigene benutzerdefinierte Klasse an. | 
| spark.metrics.conf.\*.source.jvm.class | org.apache.spark.metrics.source. JvmSource | Die Klasse, die Spark verwendet, um wichtige Metriken von der zugrunde liegenden virtuellen Java-Maschine zu sammeln und zu senden. Um das Sammeln von JVM-Metriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. B. `""` Um das Standardverhalten zu überschreiben, geben Sie Ihre eigene benutzerdefinierte Klasse an.  | 
| spark.metrics.conf.driver.sink.prometheusServlet.path | /metrics/prometheus | Die eindeutige URL, die Amazon Managed Service for Prometheus verwendet, um Metriken vom Treiber zu sammeln. Um das Standardverhalten außer Kraft zu setzen, geben Sie Ihren eigenen Pfad an. Um die Erfassung von Treibermetriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. `""` B. | 
| spark.metrics.conf.executor.sink.prometheusServlet.path | /metrics/executor/prometheus | Die eindeutige URL, die Amazon Managed Service for Prometheus verwendet, um Metriken vom Executor zu sammeln. Um das Standardverhalten außer Kraft zu setzen, geben Sie Ihren eigenen Pfad an. Um die Erfassung von Executor-Metriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. B. `""` | 

Weitere Informationen zu den Spark-Metriken finden Sie unter [ Apache Spark-Metriken. ](https://spark.apache.org/docs/latest/monitoring.html#metrics)

## Überlegungen und Einschränkungen
<a name="monitoring-with-prometheus-limitations"></a>

Wenn Sie Amazon Managed Service for Prometheus zum Erfassen von Metriken von EMR Serverless verwenden, sollten Sie die folgenden Überlegungen und Einschränkungen berücksichtigen.
+ Unterstützung für die Verwendung von Amazon Managed Service for Prometheus mit EMR Serverless ist nur dort verfügbar, [AWS-Regionen wo Amazon Managed Service für Prometheus allgemein verfügbar ist. ](https://docs.aws.amazon.com/general/latest/gr/prometheus-service.html)
+ Die Ausführung des Agenten zur Erfassung von Spark-Metriken auf Amazon Managed Service for Prometheus erfordert mehr Ressourcen von den Mitarbeitern. Wenn Sie eine kleinere Worker-Größe wählen, z. B. einen vCPU-Worker, kann sich die Laufzeit Ihres Jobs verlängern.
+ Unterstützung für die Verwendung von Amazon Managed Service for Prometheus mit EMR Serverless ist nur für Amazon EMR-Versionen 7.1.0 und höher verfügbar.
+ Amazon Managed Service for Prometheus muss in demselben Konto bereitgestellt werden, in dem Sie EMR Serverless ausführen, um Metriken zu sammeln.