Conteúdo do item:

Instalando o Actuator

Como instalar o actuator no seu projeto

O que é Actuator?
É um módulo que podemos adicionar no nosso spring-boot para coletar dados, tomar algumas ações, como por exemplo mudar o nível de log do projeto, ou coletar métricas e volumetrias dos nossos serviços.

Link da página do Spring Boot
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html

Instalando o Actuator
No pom.xml do projeto adicionar a seguinte dependência.

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


Necessário ter o spring-web  para  que o actutator consiga gerar os seus endpoints de informações.

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


Testando a instalação
Ao instalar a dependência será criado o endpoint /actuator no seu projeto. Suba seu projeto e acesse essa URL , o endpoint mostrará todos os serviços que estão disponíveis e seus respectivos endpoints para coletar as informações correspondentes.

Vamos rodar o endpoint principal do actuator http://localhost:8080/actuator/.

Temos como resultado :

{
	"_links": {
		"self": {
			"href": "http://localhost:8080/actuator",
			"templated": false
		},
		"health": {
			"href": "http://localhost:8080/actuator/health",
			"templated": false
		},
		"health-path": {
			"href": "http://localhost:8080/actuator/health/{*path}",
			"templated": true
		},
		"info": {
			"href": "http://localhost:8080/actuator/info",
			"templated": false
		}
	}
}

No meu exemplo o resultado mostra self, health, health-path e info , pegando o link disponível no  atributo HREF podemos acessar as informações.

No caso do HEALTH a URL é http://localhost:8080/actuator/health, de acordo com o HREF correspondente, e esse endpoint nos mostra a saúde do seu projeto, se tudo subiu de acordo com o esperado, e como resultado do endpoint temos o seguinte:

{"status":"UP"}

No meu caso o UP indica que está tudo certo e o projeto está online.

Adicionando mais informações
Podemos explorar alguns endpoints  que não estão habilitados por padrão, no link abaixo temos uma tabela com os nomes dos endpoints e sua proposta de informação, uma vez identificando o NOME do endpoint desejados podemos habilitá-lo.

https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints

Para ativar os endpoints desejados basta colocar seu respectivo nome(s), separados por vírgula, na seguinte propriedade dentro application.properties:

management.endpoints.web.exposure.include=NOME_ENDPOINT,NOME_ENDPOINT,NOME_ENDPOINT  ou colocar * para todos


Por exemplo, olhando no link quero habilitar o caches e o env, agora suba seu projeto e veja o resultado.

management.endpoints.web.exposure.include=caches,env

Rodando novamente o endpoint principal http://localhost:8080/actuator/ temos o seguinte resultado.

{
	"_links": {
		"self": {
			"href": "http://localhost:8080/actuator",
			"templated": false
		},
		"caches-cache": {
			"href": "http://localhost:8080/actuator/caches/{cache}",
			"templated": true
		},
		"caches": {
			"href": "http://localhost:8080/actuator/caches",
			"templated": false
		},
		"env": {
			"href": "http://localhost:8080/actuator/env",
			"templated": false
		},
		"env-toMatch": {
			"href": "http://localhost:8080/actuator/env/{toMatch}",
			"templated": true
		}
	}
}

Agora temos os endpoints de cache e env com suas respectivas informações .


Exclusão de informações
Caso voce use * no lugar dos nomes dos endpoint, conforme acima, todos os serviços serão liberados e você pode excluir somente os que não desejar através da propriedade abaixo.

management.endpoints.web.exposure.exclude=NOME_ENDPOINT,NOME_ENDPOINT,NOME_ENDPOINT


Formatação do JSON do actuator
Caso queira formatar o JSON de saída dos endpoints.

spring.jackson.serialization.indent-output=true

 

actuator; instalando; api



Redirecionar para https://www.byiorio.com.br/product/4/item/17