SAP HANA

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

A integração do SAP HANA coleta registros e métricas do SAP HANA. As métricas são coletadas consultando as visualizações de monitoramento relevantes. Essa integração grava registros de rastreamento estruturados.

Para mais informações sobre o HANA, consulte a documentação do SAP HANA.

Pré-requisitos

Para coletar a telemetria do HANA, é necessário instalar o Agente de operações versão 2.18.1 ou mais recente.

Essa integração é compatível com o HANA versão 2.0.

Configure sua instância do HANA

Para coletar métricas, um usuário de monitoramento requer acesso de SELECT às visualizações de monitoramento relevantes. O script SQL a seguir cria um papel de monitoramento e o aplica a um usuário de monitoramento se ele for executado por um usuário com permissões suficientes conectadas à instância do SAP HANA.

--Create the user
CREATE RESTRICTED USER otel_monitoring_user PASSWORD ;
--Enable user login
ALTER USER otel_monitoring_user ENABLE CLIENT CONNECT;
--Create the monitoring role
CREATE ROLE OTEL_MONITORING;
--Grant permissions to the relevant views
GRANT CATALOG READ TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_BACKUP_CATALOG TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_BLOCKED_TRANSACTIONS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_CONNECTIONS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_CS_ALL_COLUMNS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_CS_TABLES TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_DATABASE TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_DISKS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_HOST_RESOURCE_UTILIZATION TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_LICENSES TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_RS_TABLES TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICE_COMPONENT_MEMORY TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICE_MEMORY TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICE_REPLICATION TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICE_STATISTICS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICE_THREADS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_SERVICES TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_VOLUME_IO_TOTAL_STATISTICS TO OTEL_MONITORING;
GRANT SELECT ON SYS.M_WORKLOAD TO OTEL_MONITORING;
GRANT SELECT ON _SYS_STATISTICS.STATISTICS_CURRENT_ALERTS TO OTEL_MONITORING;
GRANT SELECT ON DUMMY TO OTEL_MONITORING;
--Add the OTEL_MONITOR role to the monitoring user
GRANT OTEL_MONITORING TO otel_monitoring_user;

Configurar o agente de operações para o HANA

Seguindo o guia de Como configurar o Agente de operações, adicione os elementos necessários para coletar a telemetria de instâncias do ActiveMQ e reinicie o agente.

Exemplo de configuração

O comando a seguir cria a configuração para coletar e ingerir a telemetria para o HANA e reinicia o Agente de operações.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    saphana:
      type: saphana
      include_paths:
      - /usr/sap/*/HDB*/saphanamon/trace/*.trc
      exclude_paths:
      - /usr/sap/*/HDB*/saphanamon/trace/nameserver_history*.trc
      - /usr/sap/*/HDB*/saphanamon/trace/nameserver*loads*.trc
      - /usr/sap/*/HDB*/saphanamon/trace/nameserver*executed_statements*.trc
  service:
    pipelines:
      saphana:
        receivers:
          - saphana
metrics:
  receivers:
    saphana:
      type: saphana
      username: SYSTEM
      password: G00g3l21
      endpoint: localhost:30015
  service:
    pipelines:
      saphana:
        receivers:
          - saphana
EOF

sudo service google-cloud-ops-agent restart

Configurar a coleta de registros

Para ingerir registros do HANA, é preciso criar receptores para os registros produzidos pelo HANA e, em seguida, criar um pipeline para os novos receptores.

saphanaPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Default Descrição
exclude_paths [/usr/sap/*/HDB*/${HOSTNAME}/trace/nameserver_history*.trc, /usr/sap/*/HDB*/${HOSTNAME}/trace/nameserver*loads*.trc, /usr/sap/*/HDB*/${HOSTNAME}/trace/nameserver*executed_statements*.trc] Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [/usr/sap/*/HDB*/${HOSTNAME}/trace/*.trc] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do rótulo agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type O valor precisa ser saphana..
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga no include_paths são atualizados. Dado como uma duração de tempo, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

O que é registrado

O logName é derivado dos IDs do receptor especificados na configuração. Os campos detalhados dentro de LogEntry são os seguintes.

Os registros saphana contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.component string Componente SAP HANA
jsonPayload.thread_id number Código da conversa que registra a mensagem
jsonPayload.connection_id number Código da conexão em que a mensagem foi originada, se ela foi registrada no escopo de uma conexão
jsonPayload.transaction_id number Código da transação em que a mensagem foi originada, se a mensagem foi registrada no escopo de uma transação.
jsonPayload.update_transaction_id number Código da transação de atualização em que a mensagem foi originada, se a mensagem foi registrada no escopo de uma transação de atualização
jsonPayload.message string Mensagem de registro
sourceLocation.file string Nome do arquivo de origem
sourceLocation.line number Linha no arquivo de origem

Configurar a coleta de métricas

Para ingerir métricas do HANA, é preciso criar receptores para as métricas produzidas pelo HANA e, em seguida, criar um pipeline para os novos receptores.

Para configurar um receptor para suas métricas do saphana, especifique os campos a seguir:

Campo Default Descrição
ca_file Caminho para o certificado de CA. Como cliente, isso verifica o certificado do servidor. Se estiver vazio, o receptor usará a CA raiz do sistema.
cert_file Caminho para o certificado TLS a ser usado para conexões exigidas por mTLS.
collection_interval 60s Um valor de time.Duration, como 30s ou 5m.
endpoint localhost:30015 O nome do host:porta usado para se conectar à instância saphana.
insecure true Define se uma conexão TLS segura será ou não usada. Se definido como , o TLS será ativado.
insecure_skip_verify false Define se é necessário pular a verificação do certificado. Se insecure for definido como true, o valor de insecure_skip_verify value não será usado.
key_file Caminho para a chave TLS a ser usada para conexões exigidas por mTLS.
password A senha usada para se conectar ao servidor.
type Este valor precisa ser saphana.
username O nome de usuário usado para se conectar ao servidor.

O que é monitorado?

A tabela a seguir fornece a lista de métricas que o agente de operações coleta da instância do HANA.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
workload.googleapis.com/saphana.alert.count
GAUGE, INT64
gce_instance
rating
workload.googleapis.com/saphana.backup.latest
GAUGEINT64
gce_instance
 
workload.googleapis.com/saphana.column.memory.used
GAUGEINT64
gce_instance
host
subtype
type
workload.googleapis.com/saphana.component.memory.used
GAUGE, INT64
gce_instance
component
host
workload.googleapis.com/saphana.connection.count
GAUGEINT64
gce_instance
host
status
workload.googleapis.com/saphana.cpu.used
CUMULATIVEINT64
gce_instance
host
type
workload.googleapis.com/saphana.disk.size.current
GAUGE, INT64
gce_instance
host
path
state
usage_type
workload.googleapis.com/saphana.host.memory.current
GAUGEINT64
gce_instance
host
state
workload.googleapis.com/saphana.host.swap.current
GAUGE, INT64
gce_instance
host
state
workload.googleapis.com/saphana.instance.code_size
GAUGEINT64
gce_instance
host
workload.googleapis.com/saphana.instance.memory.current
GAUGEINT64
gce_instance
host
state
workload.googleapis.com/saphana.instance.memory.shared.allocated
GAUGE, INT64
gce_instance
host
workload.googleapis.com/saphana.instance.memory.used.peak
GAUGE, INT64
gce_instance
host
workload.googleapis.com/saphana.license.expiration.time
GAUGE, INT64
gce_instance
product
system
workload.googleapis.com/saphana.license.limit
GAUGEINT64
gce_instance
product
system
workload.googleapis.com/saphana.license.peak
GAUGEINT64
gce_instance
product
system
workload.googleapis.com/saphana.network.request.average_time
GAUGE, DOUBLE
gce_instance
host
workload.googleapis.com/saphana.network.request.count
GAUGE, INT64
gce_instance
host
state
workload.googleapis.com/saphana.network.request.finished.count
CUMULATIVEINT64
gce_instance
host
type
workload.googleapis.com/saphana.replication.average_time
GAUGEDOUBLE
gce_instance
mode
port
primary
secondary
workload.googleapis.com/saphana.replication.backlog.size
GAUGE, INT64
gce_instance
mode
port
primary
secondary
workload.googleapis.com/saphana.replication.backlog.time
GAUGE, INT64
gce_instance
mode
port
primary
secondary
workload.googleapis.com/saphana.row_store.memory.used
GAUGE, INT64
gce_instance
host
type
workload.googleapis.com/saphana.schema.memory.used.current
GAUGEINT64
gce_instance
host
schema
type
workload.googleapis.com/saphana.schema.memory.used.max
GAUGEINT64
gce_instance
host
schema
workload.googleapis.com/saphana.schema.operation.count
CUMULATIVE, INT64
gce_instance
host
schema
type
workload.googleapis.com/saphana.schema.record.compressed.count
GAUGEINT64
gce_instance
host
schema
workload.googleapis.com/saphana.schema.record.count
GAUGE, INT64
gce_instance
host
schema
type
workload.googleapis.com/saphana.service.code_size
GAUGEINT64
gce_instance
host
service
workload.googleapis.com/saphana.service.count
GAUGEINT64
gce_instance
host
status
workload.googleapis.com/saphana.service.memory.compactors.allocated
GAUGE, INT64
gce_instance
host
service
workload.googleapis.com/saphana.service.memory.compactors.freeable
GAUGEINT64
gce_instance
host
service
workload.googleapis.com/saphana.service.memory.effective_limit
GAUGEINT64
gce_instance
host
service
workload.googleapis.com/saphana.service.memory.heap.current
GAUGE, INT64
gce_instance
host
service
state
workload.googleapis.com/saphana.service.memory.limit
GAUGE, INT64
gce_instance
host
service
workload.googleapis.com/saphana.service.memory.shared.current
GAUGE, INT64
gce_instance
host
service
state
workload.googleapis.com/saphana.service.memory.used
GAUGE, INT64
gce_instance
host
service
type
workload.googleapis.com/saphana.service.stack_size
GAUGEINT64
gce_instance
host
service
workload.googleapis.com/saphana.service.thread.count
GAUGEINT64
gce_instance
host
status
workload.googleapis.com/saphana.transaction.blocked
GAUGE, INT64
gce_instance
host
workload.googleapis.com/saphana.transaction.count
CUMULATIVEINT64
gce_instance
host
type
workload.googleapis.com/saphana.volume.operation.count
CUMULATIVE, INT64
gce_instance
host
path
type
usage_type
workload.googleapis.com/saphana.volume.operation.size
CUMULATIVEINT64
gce_instance
host
path
type
usage_type
workload.googleapis.com/saphana.volume.operation.time
CUMULATIVE, INT64
gce_instance
host
path
type
usage_type

Amostra de painel

Para visualizar as métricas do HANA, é necessário ter um gráfico ou um painel configurado. O Cloud Monitoring disponibiliza uma biblioteca de painéis de amostra para integrações, que contêm gráficos pré-configurados. Para informações sobre a instalação desses painéis, consulte Como instalar painéis de amostra.

Verificar a configuração

Nesta seção, descrevemos como verificar se você configurou corretamente o receptor do HANA. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.

Para verificar se os registros são ingeridos, acesse o Explorador de registros e execute a consulta a seguir para ver os registros do HANA:

resource.type="gce_instance"
log_id("saphana")

Para verificar se as métricas são ingeridas, acesse o Metrics Explorer e execute a seguinte consulta na guia MQL:

fetch gce_instance
| metric 'workload.googleapis.com/saphana.connection.count'
| every 1m

A seguir

Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.