Monitorando o Spring Boot

Você pode monitorar os aplicativos do Spring Boot usando o sensor Instana Spring Boot. O sensor do Spring Boot é automaticamente implementado e instalado após a instalação do agente do Instana. Você pode visualizar as métricas relacionadas às aplicações do ` Spring Boot ` na interface do usuário do ` Instana ` após configurar o ` Spring Boot Actuator`, conforme descrito neste tópico.

Informações de suporte

Para garantir que o sensor Spring Boot seja compatível com a sua configuração atual, consulte as seguintes seções de informações de suporte:

Sistemas Operacionais com Suporte

Os sistemas operacionais compatíveis com Spring Boot o sensor estão de acordo com os requisitos dos agentes de host, que podem ser verificados na seção “Sistemas operacionais compatíveis” de cada agente de host, como Sistemas operacionais compatíveis Linux.

Versões compatíveis e política de suporte

A tabela a seguir mostra a versão mais recente compatível e a política de suporte:

Tecnologia Política de suporte Versão com tecnologia de ponta Versão mais recente suportada
Spring Boot 45 dias 4.1.0 4.0.6

Para obter mais informações sobre a política de suporte, consulte a estratégia de suporte para sensores.

Configurando o monitorament Spring Boot

Para configurar o monitorament Spring Boot, siga estas etapas:

Passo 1: Configurar um atuador d Spring Boot

Para configurar um atuador d Spring Boot, adicione a seguinte dependência no pom.xml arquivo:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
 

O Actuator do Spring Boot gera e expõe pontos de extremidade operacionais de uma aplicação do Spring Boot em execução.

Passo 2: Ativar o recurso “ Java Management Extensions ” ( JMX )

Para o Spring Boot, 2.2.x e versões posteriores, habilite o JMX definindo a seguinte propriedade no application.properties arquivo:

spring.jmx.enabled=true
 

Ao ativar o recurso " JMX ", os dados e recursos da sua aplicação Spring Boot são expostos como beans gerenciados (MBeans).

Etapa 3: Expor os MBeans de gerenciamento d Spring Boot

Se os pontos finais estiverem desativados no application.properties arquivo com as seguintes configurações, será necessário expor os MBeans de gerenciamento do Spring Boot, pois o sensor depende desses MBeans para coletar métricas da aplicação Spring Boot :

management.endpoints.enabled-by-default=false
 

Para expor os MBeans, habilite os seguintes pontos de extremidade no application.properties arquivo:

management.endpoint.info.enabled=true
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.endpoint.env.enabled=true
 

Instana consulta métricas do MBean de gerenciamento do Spring Bootorg.springframework.boot:type=Endpoint,name=Metrics. Não é necessário configurar a autenticação ou as credenciais para pontos de extremidade de atuadores protegidos.

Para o ` Spring Boot ` e ` 3.x `, certifique-se de que a seguinte diretiva esteja presente no application.properties arquivo:

management.endpoints.jmx.exposure.include=env,health,info,metrics
 

Passo 4: Expor pontos de extremidade por meio de HTTP

Para o Spring Boot e 2 e versões posteriores, o Spring Boot Actuator oferece gerenciamento de dependências e configuração automática para o Micrometer. Dependendo da versão do Spring Boot, diferentes métricas do Micrometer estão disponíveis no painel do JVM.

Observação: é preciso avaliar cuidadosamente quando expor os pontos de extremidade na rede HTTP, pois eles podem conter informações confidenciais. Por padrão, apenas o terminal de funcionamento é exposto Para obter mais informações, consulte Exposição de pontos de extremidade.

Para excluir pontos de extremidade específicos de HTTP, use a seguinte diretiva:

management.endpoints.web.exposure.exclude=health,info
 

Para excluir todos os pontos finais de HTTP, use a seguinte diretiva:

management.endpoints.web.exposure.exclude=*
 

Passo 5: Exibir os valores do ambiente em texto

Antes que as propriedades de configuração do aplicativo possam ser exibidas na interface do usuário do Instana, é necessário fazer mais alterações no application.properties arquivo. Caso contrário, essas propriedades serão mostradas como ****** por causa de valores sensíveis Para obter mais informações, consulte Sanitizar valores confidenciais.

Para sempre mostrar os valores como texto não criptografado, use a seguinte configuração no arquivo application.properties :

management.endpoint.env.show-values=ALWAYS
 

Passo 6: Nomeie os aplicativos d Spring Boot

Instana extrai o nome das instâncias de ` Spring Boot ` das seguintes fontes:

  • spring.application.name propriedade: Se essa propriedade estiver definida na configuração do seu aplicativo, seu valor será usado como nome do aplicativo. No Spring Boot 3, para especificar o nome do aplicativo Spring Boot, defina a spring.application.name propriedade no application.properties arquivo da seguinte forma:

    spring.application.name=<Your_Application_Name>
     
  • build-info.properties arquivo: Se não spring.application.name estiver definido, o ` Instana ` recupera o nome do aplicativo ` Spring Boot ` a partir do build-info.properties arquivo. Este arquivo pode ser gerado, por exemplo, com spring-boot-maven-plugin:

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <executable>true</executable>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>build-info</goal>
          </goals>
          <configuration>
            <additionalProperties>
              <name>${project.artifactId}</name>
              <version>${project.version}</version>
            </additionalProperties>
          </configuration>
        </execution>
      </executions>
    </plugin>
     

    Para obter mais informações sobre a integração com o Actuator, consulte a documentação do plugin Spring Boot Maven.

Opcional: Definir o parâmetro de intervalo de verificação

Por padrão, a Instana verifica o funcionamento do app Spring Boot a cada 10 minutos consultando o MBean de gerenciamento org.springframework.boot:type=Endpoint,name=Health.

Para configurar o parâmetro health-interval desejado, defina o valor em segundos:

com.instana.plugin.springboot:
  health-interval: 30
 
Observação: A verificação de integridade pode gerar novas chamadas subsequentes, dependendo da forma como for implementada. Se a verificação de funcionamento falhar, você verá uma mensagem de aviso indicando a causa raiz.

Opcional: Configurando a frequência de sondagem

Observação: Instana Spring Boot sensor 1.1.49 e versões posteriores oferecem suporte à configuração da taxa de sondagem para reduzir a ingestão de dados. Esse recurso é compatível com o backend 311 e versões posteriores do Instana em servidor próprio.

Você pode definir a frequência com que o Instana consulta o Spring Boot para coletar dados e métricas usando o poll_rate parâmetro no arquivo configuration.yaml do agente, conforme mostrado no exemplo a seguir:

com.instana.plugin.springboot:
  poll_rate: 1 # values are in seconds. Default value is 1 second.

Visualizando as métricas

Para visualizar as métricas, conclua as seguintes etapas:

  1. Na barra lateral da interface do usuário do Instana, selecione Infraestrutura.
  2. Clique em um host monitorado específico

É possível ver um painel do host com todas as métricas coletadas e processos monitorados.

Terminais e sessões do HTTP

Instana Spring Boot O sensor coleta as seguintes métricas dos terminais e das sessões do HTTP :

Dados de configuração

A tabela a seguir lista os dados de configuração coletados pelo sensor Instana Spring Boot :

Configuração Descrição
Nome O nome do aplicativo Spring Boot .
Versão do aplicativo A versão de construção do aplicativo Spring Boot ..
Versão do SpringBoot . A versão da estrutura Spring Boot .
Status O status do pedido de Spring Boot, como porUp exemploDown.
Porta A versão para o HTTP do aplicativo Spring Boot.
Limite de sessão HTTP O número máximo de sessões HTTP da aplicação Spring Boot.
Configuração de Aplicativo As informações de configuração do aplicativo Spring Boot , incluindo caminho de configuração e propriedades.

Métricas de desempenho

A tabela a seguir lista as métricas de desempenho coletadas pelo sensor Instana Spring Boot :

Métrica Descrição Granularidade
Pedido de Terminal ou Interrupção de Resposta O número de solicitações por segundo para cada código de status de resposta ( 1xx, 2xx, 3xx, 4xx ou 5xx ) 1 segundo
Sessões HTTP O número de sessões HTTP ativas 1 segundo

Origens de dados

Instana Spring Boot O sensor coleta os seguintes dados de monitoramento das fontes de dados:

Dados de configuração

A tabela a seguir lista os dados de configuração coletados das fontes de dados:

Nome Descrição
Nome do Conjunto O nome do pool de HikariCP.
Tempo limite de conexão O tempo limite de conexão de HikariCP.

Métricas de desempenho

As seguintes métricas de desempenho são coletadas das fontes de dados:

Java Fonte de dados de conectividade com banco de dados ( JDBC )

A tabela a seguir lista as métricas do JDBC coletadas das fontes de dados:

Métrica Nome de exibição Descrição Granularidade
active Ativo O número de conexões ativas. 1 segundo
idle Inativo O número de conexões ociosas. 1 segundo
max Máx. O número máximo de conexões. 1 segundo
min Mín. O número de conexões mínimas. 1 segundo
HikariCP fonte de dados

A tabela a seguir lista as métricas do HikariCP coletadas das fontes de dados:

Métrica Nome de exibição Descrição Granularidade
acquire Aquisições O número de aquisições de conexão. 1 segundo
active Ativo O número de conexões ativas. 1 segundo
creation Criações O número de criações de conexão. 1 segundo
idle Inativo O número de conexões ociosas. 1 segundo
max Máx. O número máximo de conexões. 1 segundo
min Mín. O número de conexões mínimas. 1 segundo
pending Encadeamentos pendentes O número de threads aguardando uma conexão. 1 segundo
timeout Tempos limite O número de tempos limite de conexão. 1 segundo
total Total O número total de conexões. 1 segundo
usage Uso O número de conexões adicionadas de volta ao pool. 1 segundo

Assinaturas de funcionamento

Para cada sensor, uma base de conhecimento curada de assinaturas de funcionamento é avaliada continuamente com relação às métricas recebidas e é usada para levantar problemas ou incidentes que dependem do impacto do usuário.

Os eventos integrados acionam problemas ou incidentes com base em assinaturas de integridade com falha nas entidades, enquanto os eventos personalizados acionam problemas ou incidentes com base nos limites de uma métrica específica de qualquer entidade selecionada.

Para obter mais informações sobre eventos construídos para o sensor Spring Boot , consulte a Referência de eventos integrados.

Resolução de problemas

Use essas entradas de resolução de problemas para ajudar a resolver problemas relacionados ao monitoramento de aplicativos Spring Boot . Uma mensagem de erro com o tipo de problema indicado e uma breve explicação sobre o que deu errado é exibida no painel do Spring Boot na interface do usuário do Instana.

O JMX não está ativado

Tipo de problema de monitoramento: springboot_jmx_not_enabled

Para ativar o “ JMX ”, consulte “Ativar o ‘ Java Management Extensions ’” ( JMX ).

Observação: Se a spring.main.lazy-initialization propriedade estiver ativada, você deverá atualizar a versão do Spring Boot para a versão 2.4.12 ou posterior.