2016-09-23 10 views
0

Я новый пользователь для показателей производительности Spring Boot Actuator, мне нужно определить использование ЦП в системе. URL-адрес/metrics дает мне остальную информацию, однако systemload.average возвращает -1 (если средняя загрузка не доступна -1 возвращается). Не могли бы вы сообщить мне, где я ошибся, и как я могу это исправить? Я использую maven и Eclipse IDE (Mars). Я обращаюсь к метрическим деталям на самом локальном хосте. URL-адрес является http://localhost:8080/details/metrics (деталь используется для контекстного пути)Java Spring Boot Actuator Метрика загружает среднее среднее значение -1

Вот мой код: Application.java файл пакета spring.boot.admin.actuator;

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.PropertySource; 

@EnableAutoConfiguration 
@ComponentScan 
@PropertySource(value = "classpath:application.properties") 
public class Application{ 

public static void main(final String[] args) { 
    SpringApplication.run(Application.class, args); 
} 
} 

POM Файл http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<groupId>spring.boot.admin</groupId> 
    <artifactId>actuator</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>actuator</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> 
<version>1.3.7.RELEASE</version> 
</parent> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

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

    </dependencies> 
</project> 

**application.properties file** 

management.port=8080 
management.context-path=/details 
management.security.enabled=true 

endpoints.health.enabled=false 

security.basic.enabled=true 
security.user.name=admin 
security.user.password=admin 

endpoints.health.id=health 
endpoints.health.sensitive=true 
endpoints.health.enabled=true 

endpoints.metrics.id=metrics 
endpoints.metrics.sensitive=true 
endpoints.metrics.enabled=true 

endpoints.server.id=server 
endpoints.server.sensitive=false 
endpoints.server.enabled=true 

endpoints.info.id=info 
endpoints.info.sensitive=false 
endpoints.info.enabled=true 
info.app.name=Spring Actuator Example 
info.app.description=Spring Actuator Working Examples 
info.app.version=0.0.1-SNAPSHOT 
management.security.enabled=true 

enter image description here

+0

[код] (https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ SystemPublicMetrics.java # L97) использует JMX. Можете ли вы попробовать увидеть с VisualVM то, что там возвращается? –

+0

@WimDeblauwe благодарит вас за совет, он дал немного больше ясности о JMX для меня. Я использовал VisualVM сейчас (впервые), он показывает поток как время ожидания соединения сервера JMX 221 в состоянии ожидания, тогда как поток JMX Cient Heartbeat 10 в состоянии сна. –

+0

Вам необходимо установить плагин VisualVM-MBeans. После этого появится новая вкладка «MBeans». Там откройте папку «java.lang» и выберите «Операционная система» в дереве. С правой стороны вы увидите «SystemLoadAverage» в таблице. –

ответ

0

systemload.average возвращает то, что возвращается JVM через MBean OperatingSystem (доступно в узле дерева java.lang). Используйте JConsole или плагин VisualVM-Beans в VisualVM, чтобы просмотреть, что там возвращается.

Если значение атрибута SystemLoadAverage совпадает, это не ошибка в Spring Boot или использование Spring Boot.

+0

@WimDeblauve есть ли какие-либо альтернативы для поиска systemload.average с использованием привода Spring boot вместо получения -1, так как моя первоначальная цель - найти среднюю загрузку системы ? Или любые изменения, которые могут быть сделаны? –

+0

На какой операционной системе вы работаете? –

+0

Windows 7 Enterprise Edition –