Metrics - VidoniJorge/gs-spring-cloud-netflix GitHub Wiki

Spring nos proporciona varias librerías para poder monitorear el funcionamiento de nuestros MS, de las cuales exploraremos su funcionalidad básica. En este artículo nos centraremos en la librería Spring Actuator

Spring Actuator

Sin entrar en mucho detalle, diremos que Spring Actuator es una librería que nos ayudara a monitorear y administrar nuestros servicios productivos.

Para más información consultar los siguientes enlaces:

Incluir Spring Actuator en nuestro proyecto

Lo primero que tenemos que hacer es incluir la librería en nuestro proyecto, para eso nos dirigimos a nuestro pom.xml o build.gradle y agregamos la siguiente dependencia:

  • group: org.springframework.boot; artifact: spring-boot-starter-actuator

Ejemplo en gradle:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator'

Ejemplo en maven

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

Por defecto, Spring Actuator trae todo sus endpoints apagados, menos los endpoints /health y /info a los cuales ya podremos ingresar después de haber agregado las dependencias a nuestro proyecto. Para poder ingresar solo tendremos que ingresar en nuestro browser las siguientes url:

  • http://[url del servicio]:[port]/actuator/info
  • http://[url del servicio]:[port]/actuator/health

Ejemplo de response del endpoint info con la implementación por defecto

    {}

Ejemplo de response del endpoint health con la implementación por defecto

    {
         "status": "UP"
    }

Para ver la lista completa de endpoints ingresar a Production ready endpoints

Configuraciones básicas

Una de las configuraciones mas básicas que nos pueden pedir es que cambiemos el base-path. Para ubicarnos, dentro de la siguiente url

http://localhost:8071/actuator/health

el base-path es

/actuator/.

Para poder realizar el cambio de base-path, lo único que tenemos que hacer es modificar en nuestro application.properties o application.yml la siguiente propiedad:

management.endpoints.web.base-path = << base-path >>

Otra configuración que es frecuente tener que hacer, es habilitar más endpoints de los que vienen habilitados por defecto. Para esto vamos a manipular las siguientes propiedades dentro de nuestro application.properties o application.yml:

  • management.endpoints.web.exposure.include: se utiliza para incluir endpoint
  • management.endpoints.web.exposure.exclude: se utiliza para excluir endpoint

Su sintaxis es la siguiente

management.endpoints.web.exposure. include = <>,<> management.endpoints.web.exposure. exclude= <>,<>

Ejemplo

management.endpoints.web.exposure. include = info,health, metrics, trace

Si queremos incluir todos los endpoints podemos usar el simbolo “*”

management.endpoints.web.exposure. include = “*”

⚠️ **GitHub.com Fallback** ⚠️