Cloud Logging einrichten
Der Mainframe-Connector kann JSON-formatierte Protokollnachrichten mit Kontextinformationen an Cloud Logging senden. Der Kontext umfasst den Jobnamen, die Job-ID, das Jobdatum, den Schrittnamen und andere von z/OS bereitgestellte Variablen.
So können Sie Protokolle für bestimmte Jobs finden und Benachrichtigungen erstellen. Wenn Sie den Mainframe-Connector in Cloud Run, der Google Kubernetes Engine oder der Compute Engine bereitstellen, werden die Protokolle zusätzlich vom Cloud Logging-Agent erfasst und im Logs Explorer angezeigt.
Wenn Sie den Mainframe-Connector so konfigurieren möchten, dass er in Cloud Logging schreibt, legen Sie die Umgebungsvariablen LOG_PROJECT
und LOG_ID
im JCL fest, mit dem der Job gestartet wird. Beispiel: LOG_PROJECT=mainframe-connector-proj
und LOG_ID=my-mfc
. Der Log-Name LOG_NAME
leitet sich von LOG_PROJECT
und LOG_ID
ab. In diesem Beispiel ist das projects/mainframe-connector-proj/logs/my-mfc
.
Der Ressourcentyp ist immer global, da es sich bei dem Protokoll um ein von Nutzern erstelltes Protokoll handelt und nicht um ein Protokoll des Cloud-Dienstes. Beim Starten wird in Mainframe Connector eine Meldung angezeigt, ob Cloud Logging konfiguriert ist.
Ladestatistiken aktivieren
Mit der Funktion „Ladestatistiken“ wird jeder Befehl, den Sie mit dem Mainframe-Connector ausführen, in einer SQL-Tabelle protokolliert. Wenn Sie die Funktion „Ladestatistiken“ aktivieren möchten, erstellen Sie eine Tabelle mit dem folgenden Befehl und fügen Sie dem Befehl cp
das Flag --stats_table TABLE_NAME
hinzu. Dabei ist TABLE_NAME der Name der SQL-Tabelle.
CREATE TABLE
`[PROJECT_ID].[DATASET_NAME].[TABLE_NAME]` (
timestamp TIMESTAMP,
job_id STRING,
job_name STRING,
job_date DATE,
job_time TIME,
job_step_name STRING,
job_type STRING,
source STRING,
destination STRING,
job_json STRING,
rows_read INT64,
rows_written INT64,
rows_affected INT64,
rows_inserted INT64,
rows_deleted INT64,
rows_updated INT64,
rows_unmodified INT64,
rows_before_merge INT64,
rows_loaded INT64,
bq_job_id STRING,
bq_job_project STRING,
bq_job_location STRING,
statement_type STRING,
query STRING,
execution_ms INT64,
queued_ms INT64,
bytes_processed INT64,
slot_ms INT64,
slot_utilization_rate FLOAT64,
slot_ms_to_total_bytes_ratio FLOAT64,
shuffle_bytes FLOAT64,
shuffle_bytes_to_total_bytes_ratio FLOAT64,
shuffle_spill_bytes FLOAT64,
shuffle_spill_bytes_to_shuffle_bytes_ratio FLOAT64,
shuffle_spill_bytes_to_total_bytes_ratio FLOAT64,
shuffle_spill_gb FLOAT64,
bq_stage_count INT64,
bq_step_count INT64,
bq_sub_step_count INT64,
bq_stage_summary STRING)
PARTITION BY job_date
CLUSTER BY job_name, job_id, job_step_name
OPTIONS (
partition_expiration_days=1000,
description="Log table for mainframe jobs",
require_partition_filter=true)
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts, in dem Sie den Befehl ausführen möchten.DATASET_NAME
: der Name der Datensatzdatei.TABLE_NAME
: Der Name der SQL-Tabelle, in der Sie die Details erfassen möchten.
Dataset-Namen
Sie können die folgenden Datensatzdefinitionsdateien (DD) in Ihrem BQSH-JCL-Verfahren verwenden. Achten Sie darauf, dass für alle MVS-Datasets, auf die in einer DD-Datei verwiesen wird, das Eintragsformat „Fixed Block“ (FB) verwendet wird.
Name des Datenträgers | Beschreibung |
---|---|
COPYBOOK | Ein MVS-Dataset mit einem COBOL-Copybook für das Dataset, auf das über ein INFILE-DD verwiesen wird. Sie können das Copybook-DD mit einigen Einschränkungen verwenden. Weitere Informationen finden Sie unter Einschränkungen für die Verwendung von COPYBOOK DD. |
INFILE | Ein MVS-Dataset mit einem COBOL-Dataset, das in Cloud Storage hochgeladen werden soll. |
KEYFILE | Ein MVS-Datensatz mit einer JSON-Schlüsseldatei für das Google Cloud IAM-Dienstkonto. |
OUTFILE | Ein MVS-Dataset mit einem COBOL-Dataset, das aus BigQuery geladen werden soll. |
QUERY DD | Ein MVS-Dataset mit einer BigQuery-Standard-SQL-Abfrage. Das QUERY-DD ist eine FB-Datei mit einer logischen Datensatzgröße (LRECL) von 80. Das bedeutet, dass jeder Datensatz in der Datei 80 Byte lang ist. |
STDIN | Streameingabe, die zum Bereitstellen von Shell-Befehlen verwendet wird. |