Standardmesswerte für den SAP HANA-Monitoring-Agent

In diesem Dokument werden die Messwerte beschrieben, die der Google Monitoring-Agent für SAP HANA aus SAP HANA erfasst. Darüber hinaus enthält das Dokument die Abfragen, die der Monitoring-Agent zum Erfassen dieser Messwerte verwendet. Sie können die Standardmesswerte unterdrücken und mit diesen Abfragen benutzerdefinierte Messwerte definieren, die auf Ihre eigenen Monitoring-Anforderungen abgestimmt sind. Weitere Informationen finden Sie unter Benutzerdefinierte Abfragen erstellen im Nutzerhandbuch für den SAP HANA-Monitoring-Agent.

Standardmesswerte und -abfragen

Der Google Monitoring-Agent für SAP HANA erfasst standardmäßig die folgenden Messwerte aus Ihrer SAP HANA-Datenbank.

Gesamte Arbeitsspeicherauslastung nach Diensten

Messwert Beschreibung
instance/mem_used_mb Derzeit von allen Diensten verwendete Speichermenge aus dem Arbeitsspeicherpool (in MiB)
instance/resident_mem_used_mb Insgesamt von allen Diensten verwendete Speichermenge (in MiB)

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     SUM(TOTAL_MEMORY_USED_SIZE)/1024/1024 AS "mem_used_mb",
     SUM(PHYSICAL_MEMORY_SIZE)/1024/1024 AS "resident_mem_used_mb"
FROM M_SERVICE_MEMORY;

Gesamte von allen Spaltentabellen verwendete Speichermenge

Messwert in Cloud Monitoring Beschreibung
instance/table_mem_used_mb Gesamtmenge des von allen Spaltentabellen verwendeten Speichers (in MiB) (Summe der Speichergröße in den Abschnitten "Main", "Delta" und "History")

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um den obigen Messwert aus SAP HANA zu erfassen:

SELECT
     SUM(MEMORY_SIZE_IN_TOTAL)/1024/1024 AS "table_mem_used_mb"
FROM M_CS_TABLES;

Ressourcenauslastung durch den Host

Messwert Beschreibung
by_server/mem_available_percent Für Prozesse verfügbarer Arbeitsspeicher (in MiB)
by_server/mem_total_mb Gesamtmenge des Arbeitsspeichers (in MiB) auf dem Server
by_server/mem_available_mb Freier physischer Speicher (in MiB) auf dem Host
by_server/mem_used_mb Verwendeter physischer Speicher (in MiB) auf dem Host
by_server/swap_avail_mb Freier Swap-Speicher (in MiB) auf dem Host
by_server/swap_used_mb Verwendeter Swap-Speicher (in MiB) auf dem Host
by_server/instance_mem_used_mb Von Instanzprozessen verwendete Speichermenge aus dem Arbeitsspeicherpool (in MiB)
by_server/peak_instance_mem_used_mb Spitzenwert der von Instanzprozessen verwendeten Speichermenge aus dem Arbeitsspeicherpool (in MiB)
by_server/instance_mem_pool_size_mb Größe des Arbeitsspeicherpools (in MiB) für alle Instanzprozesse
by_server/instance_code_size_mb Codegröße (in MiB), einschließlich gemeinsam genutzter Bibliotheken von Instanzprozessen
by_server/instance_shared_size_mb Größe des gemeinsamen Arbeitsspeichers von Instanzprozessen
by_server/cpu_user_time_msec Für den Nutzermodus benötigte CPU-Zeit (in ms)
by_server/cpu_sys_time_msec Für den Kernel-Modus benötigte CPU-Zeit (in ms)
by_server/cpu_wait_io_time_msec Für E/A-Wartephase benötigte CPU-Zeit (in ms)
by_server/cpu_idle_time_msec Leerlaufzeit der CPU (in ms)

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     HOST AS "host",
     FREE_PHYSICAL_MEMORY/(FREE_PHYSICAL_MEMORY + USED_PHYSICAL_MEMORY)*100 AS "mem_available_percent",
     (FREE_PHYSICAL_MEMORY + USED_PHYSICAL_MEMORY)/1024/1024 AS "mem_total_mb",
     FREE_PHYSICAL_MEMORY/1024/1024 AS "mem_available_mb",
     USED_PHYSICAL_MEMORY/1024/1024 AS "mem_used_mb",
     FREE_SWAP_SPACE/1024/1024 AS "swap_avail_mb",
     USED_SWAP_SPACE/1024/1024 AS "swap_used_mb",
     INSTANCE_TOTAL_MEMORY_USED_SIZE/1024/1024 AS "instance_mem_used_mb",
     INSTANCE_TOTAL_MEMORY_PEAK_USED_SIZE/1024/1024 AS "peak_instance_mem_used_mb",
     INSTANCE_TOTAL_MEMORY_ALLOCATED_SIZE/1024/1024 AS "instance_mem_pool_size_mb",
     INSTANCE_CODE_SIZE/1024/1024 AS "instance_code_size_mb",
     INSTANCE_SHARED_MEMORY_ALLOCATED_SIZE/1024/1024 AS "instance_shared_size_mb",
     TOTAL_CPU_USER_TIME AS "cpu_user_time_msec",
     TOTAL_CPU_SYSTEM_TIME AS "cpu_sys_time_msec",
     TOTAL_CPU_WIO_TIME AS "cpu_wait_io_time_msec",
     TOTAL_CPU_IDLE_TIME AS "cpu_idle_time_msec"
FROM M_HOST_RESOURCE_UTILIZATION;

Von Dienstkomponenten benötigte Speichermenge

Messwert Beschreibung
by_component/mem_used_mb Derzeit verwendete Speichermenge aus dem Arbeitsspeicherpool (in MiB)

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     HOST AS "host",
     COMPONENT AS "component",
     SUM(USED_MEMORY_SIZE)/1024/1024 AS "mem_used_mb"
FROM M_SERVICE_COMPONENT_MEMORY
GROUP BY HOST, COMPONENT;

Speicherauslastung durch Dienste

Messwert Beschreibung
by_service/mem_used_mb Größe des virtuellen Speichers (in MiB)
by_service/virtual_mem_used_mb Größe des physischen Speichers (in MiB)
by_service/resident_mem_used_mb Codemenge (in MiB), einschließlich gemeinsam genutzter Bibliotheken
by_service/code_size_mb Stackgröße (in MiB)
by_service/stack_size_mb Heap-Teil des Arbeitsspeicherpools (in MiB)
by_service/heap_mem_allocated_mb Größe des verwendeten Heap-Speichers (in MiB)
by_service/shared_mem_allocated_mb Größe des gemeinsamen Arbeitsspeichers im Pool (in MiB)
by_service/shared_mem_used Größe des verwendeten gemeinsamen Poolspeichers (in MiB)
by_service/compactors_allocated_mb Teil des Speicherpools (in MiB), der bei Speichermangel potenziell freigegeben werden kann
by_service/compactors_freeable_mb Arbeitsspeicher (in MiB), der bei Speichermangel tatsächlich freigegeben werden kann
by_service/max_mem_pool_size_mb Konfigurierte Maximalgröße des Speicherpools (in MiB)
by_service/effective_max_mem_pool_size_mb Effektive Maximalgröße des Speicherpools (in MiB)

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     HOST AS "host",
     PORT AS "port",
     SERVICE_NAME AS "service",
     TOTAL_MEMORY_USED_SIZE/1024/1024 AS "mem_used_mb",
     LOGICAL_MEMORY_SIZE/1024/1024 AS "virtual_mem_used_mb",
     PHYSICAL_MEMORY_SIZE/1024/1024 AS "resident_mem_used_mb",
     CODE_SIZE/1024/1024 AS "code_size_mb",
     STACK_SIZE/1024/1024 AS "stack_size_mb",
     HEAP_MEMORY_ALLOCATED_SIZE/1024/1024 AS "heap_mem_allocated_mb",
     HEAP_MEMORY_USED_SIZE/1024/1024 AS "heap_mem_used_mb",
     SHARED_MEMORY_ALLOCATED_SIZE/1024/1024 AS "shared_mem_allocated_mb",
     SHARED_MEMORY_USED_SIZE/1024/1024 AS "shared_mem_used",
     COMPACTORS_ALLOCATED_SIZE/1024/1024 AS "compactors_allocated_mb",
     COMPACTORS_FREEABLE_SIZE/1024/1024 AS "compactors_freeable_mb",
     ALLOCATION_LIMIT/1024/1024 AS "max_mem_pool_size_mb",
     EFFECTIVE_ALLOCATION_LIMIT/1024/1024 AS "effective_max_mem_pool_size_mb"
FROM M_SERVICE_MEMORY;

Laufzeitdaten für Spaltentabellen nach Schema

Messwert Beschreibung
by_schema/mem_total_mb Gesamter von den Abschnitten "Main", "Delta" und "History" verwendeter Arbeitsspeicher (in MiB)
by_schema/mem_main_mb Aktueller Arbeitsspeicherverbrauch (in MiB) in "Main"
by_schema/mem_delta_mb Aktueller Arbeitsspeicherverbrauch (in MiB) in "Delta"
by_schema/mem_hist_main_mb Aktueller Arbeitsspeicherverbrauch (in MiB) in "History-Main"
by_schema/mem_hist_detla_mb Aktueller Arbeitsspeicherverbrauch (in MiB) in "History-Delta"
by_schema/est_max_mem_total_mb Geschätzter maximaler Arbeitsspeicherverbrauch (in MiB)
by_schema/records Anzahl der Datensätze
by_schema/records_main Anzahl der Datensätze im Abschnitt "Main" der Tabellen im Schema
by_schema/records_delta Anzahl der Datensätze im Abschnitt "Delta" der Tabellen im Schema
by_schema/records_hist_main Anzahl der Datensätze im Abschnitt "History-Main" der Tabellen im Schema
by_schema/records_hist_delta Anzahl der Datensätze im Abschnitt "History-Delta" der Tabellen im Schema
by_schema/last_compressed_record_count Anzahl der Einträge in "Main" während der letzten Ausführung der Komprimierungsoptimierung
by_schema/reads Anzahl der Lesezugriffe
by_schema/writes Anzahl der Schreibzugriffe
by_schema/merges Anzahl von Delta-Merges

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     HOST AS "host",
     PORT AS "port",
     SCHEMA_NAME AS "schema",
     SUM(MEMORY_SIZE_IN_TOTAL)/1024/1024 AS "mem_total_mb",
     SUM(MEMORY_SIZE_IN_MAIN)/1024/1024 AS "mem_main_mb",
     SUM(MEMORY_SIZE_IN_DELTA)/1024/1024 AS "mem_delta_mb",
     SUM(MEMORY_SIZE_IN_HISTORY_MAIN)/1024/1024 AS "mem_hist_main_mb",
     SUM(MEMORY_SIZE_IN_HISTORY_DELTA)/1024/1024 AS "mem_hist_delta_mb",
     SUM(ESTIMATED_MAX_MEMORY_SIZE_IN_TOTAL)/1024/1024 AS "est_max_mem_total_mb",
     SUM(RECORD_COUNT) AS "records",
     SUM(RAW_RECORD_COUNT_IN_MAIN) AS "records_main",
     SUM(RAW_RECORD_COUNT_IN_DELTA) AS "records_delta",
     SUM(RAW_RECORD_COUNT_IN_HISTORY_MAIN) AS "records_hist_main",
     SUM(RAW_RECORD_COUNT_IN_HISTORY_DELTA) AS "records_hist_delta",
     SUM(LAST_COMPRESSED_RECORD_COUNT) AS "last_compressed_record_count",
     SUM(READ_COUNT) AS "reads",
     SUM(WRITE_COUNT) AS "writes",
     SUM(MERGE_COUNT) AS "merges"
FROM M_CS_TABLES
GROUP BY HOST, PORT, SCHEMA_NAME;

Anweisungen mit einer längeren Dauer als dem von der Instanz konfigurierten Schwellenwert

Messwert Beschreibung
expensive_statements/duration_msec Während der Ausführung der Anweisung verstrichene Zeit (in ms)
expensive_statements/records Anzahl der Datensätze
expensive_statements/lock_waits Akkumulierte Anzahl der Wartezeiten wegen Sperrungen
expensive_statements/lock_duration_msec Akkumulierte Wartezeit wegen Sperrungen (in ms)
expensive_statements/cpu_time_msec Zur Berechnung der Anweisung benötigte CPU-Zeit (in ms)

Der Google Monitoring-Agent für SAP HANA verwendet die folgende Abfrage, um die obigen Messwerte aus SAP HANA zu erfassen:

SELECT
     HOST AS "host",
     PORT AS "port",
     CONNECTION_ID AS "connection_id",
     TRANSACTION_ID AS "transaction_id",
     STATEMENT_HASH AS "statement_hash",
     DB_USER AS "db_user",
     SCHEMA_NAME AS "schema",
     APP_USER AS "app_user",
     ERROR_CODE AS "error_code",
     DURATION_MICROSEC/1000 AS "duration_msec",
     RECORDS AS "records",
     LOCK_WAIT_COUNT AS "lock_waits",
     LOCK_WAIT_DURATION/1000 AS "lock_duration_msec",
     CPU_TIME/1000 AS "cpu_time_msec"
FROM M_EXPENSIVE_STATEMENTS;