Skip to content

No metrics are exposed ootb #454

@NikitaVoitov

Description

@NikitaVoitov

As per README:
Spring Boot registers a lot number of core metrics: JVM, CPU, Tomcat, Logback... The Spring Boot auto-configuration enables the instrumentation of requests handled by Spring MVC. All those three REST controllers OwnerResource, PetResource and VisitResource have been instrumented by the @timed Micrometer annotation at class level.

customers-service application has the following custom metrics enabled:
@timed: petclinic.owner
@timed: petclinic.pet
visits-service application has the following custom metrics enabled:
@timed: petclinic.visit

In reality, nothing is exposed!

[ec2-user@aap spring-petclinic-microservices]$ cat spring-petclinic-customers-service/src/main/resources/application.yml 
spring:
  application:
    name: customers-service
  config:
    import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/}


---
spring:
  config:
    activate:
      on-profile: docker
    import: configserver:http://config-server:8888
[ec2-user@aap spring-petclinic-microservices]$ java -jar ../../jmxterm-1.0.4-uber.jar -l localhost:9010
Delete /home/ec2-user/.jmxterm_history if you encounter error right after launching me.
Welcome to JMX terminal. Type "help" for available commands.
$>beans -d metrics
#IllegalArgumentException: Domain metrics doesn't exist, check your spelling
$>beans
#domain = JMImplementation:
JMImplementation:type=MBeanServerDelegate
#domain = com.netflix.servo:
com.netflix.servo:class=AsyncResolver,id=bootstrap,level=INFO,name=eurekaClient.resolver.endpointsSize,type=GAUGE
com.netflix.servo:class=AsyncResolver,id=bootstrap,level=INFO,name=eurekaClient.resolver.lastLoadTimestamp,type=GAUGE
com.netflix.servo:class=CloudEurekaClient,level=INFO,name=eurekaClient.registration.lastSuccessfulHeartbeatTimePeriod,type=GAUGE
com.netflix.servo:class=CloudEurekaClient,level=INFO,name=eurekaClient.registry.lastSuccessfulRegistryFetchTimePeriod,type=GAUGE
com.netflix.servo:class=CloudEurekaClient,level=INFO,name=eurekaClient.registry.localRegistrySize,type=GAUGE
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_FetchRegistry,statistic=count,type=NORMALIZED,unit=MILLISECONDS
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_FetchRegistry,statistic=max,type=GAUGE,unit=MILLISECONDS
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_FetchRegistry,statistic=totalOfSquares,type=NORMALIZED,unit=MILLISECONDS
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_FetchRegistry,statistic=totalTime,type=NORMALIZED,unit=MILLISECONDS
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_ReconcileHashCodeMismatch,type=COUNTER
com.netflix.servo:class=CloudEurekaClient,name=DiscoveryClient_Reregister,type=COUNTER
com.netflix.servo:class=RetryableEurekaHttpClient,id=query,level=INFO,name=eurekaClient.transport.quarantineSize,type=GAUGE
com.netflix.servo:class=RetryableEurekaHttpClient,id=registration,level=INFO,name=eurekaClient.transport.quarantineSize,type=GAUGE
com.netflix.servo:class=SessionedEurekaHttpClient,id=query,level=INFO,name=eurekaClient.transport.currentSessionDuration,type=GAUGE
com.netflix.servo:class=SessionedEurekaHttpClient,id=registration,level=INFO,name=eurekaClient.transport.currentSessionDuration,type=GAUGE
com.netflix.servo:class=TimedSupervisorTask,id=AsyncResolver,name=rejectedExecutions,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=AsyncResolver,name=success,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=AsyncResolver,name=threadPoolUsed,type=GAUGE
com.netflix.servo:class=TimedSupervisorTask,id=AsyncResolver,name=throwables,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=AsyncResolver,name=timeouts,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=cacheRefresh,name=rejectedExecutions,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=cacheRefresh,name=success,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=cacheRefresh,name=threadPoolUsed,type=GAUGE
com.netflix.servo:class=TimedSupervisorTask,id=cacheRefresh,name=throwables,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=cacheRefresh,name=timeouts,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=heartbeat,name=rejectedExecutions,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=heartbeat,name=success,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=heartbeat,name=threadPoolUsed,type=GAUGE
com.netflix.servo:class=TimedSupervisorTask,id=heartbeat,name=throwables,type=COUNTER
com.netflix.servo:class=TimedSupervisorTask,id=heartbeat,name=timeouts,type=COUNTER
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00015,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00030,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00060,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00120,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00240,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registration.lastHeartbeatSec_00480,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00015,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00030,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00060,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00120,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00240,type=GAUGE
com.netflix.servo:class=org.springframework.cloud.netflix.eureka.CloudEurekaClient,name=eurekaClient.registry.lastUpdateSec_00480,type=GAUGE
#domain = com.sun.management:
com.sun.management:type=DiagnosticCommand
com.sun.management:type=HotSpotDiagnostic
#domain = java.lang:
java.lang:name=CodeCacheManager,type=MemoryManager
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
java.lang:name=Compressed Class Space,type=MemoryPool
java.lang:name=G1 Eden Space,type=MemoryPool
java.lang:name=G1 Old Gen,type=MemoryPool
java.lang:name=G1 Old Generation,type=GarbageCollector
java.lang:name=G1 Survivor Space,type=MemoryPool
java.lang:name=G1 Young Generation,type=GarbageCollector
java.lang:name=Metaspace Manager,type=MemoryManager
java.lang:name=Metaspace,type=MemoryPool
java.lang:type=ClassLoading
java.lang:type=Compilation
java.lang:type=Memory
java.lang:type=OperatingSystem
java.lang:type=Runtime
java.lang:type=Threading
#domain = java.nio:
java.nio:name=direct,type=BufferPool
java.nio:name=mapped - 'non-volatile memory',type=BufferPool
java.nio:name=mapped,type=BufferPool
#domain = java.util.logging:
java.util.logging:type=Logging
#domain = jdk.management.jfr:
jdk.management.jfr:type=FlightRecorder
#domain = org.springframework.boot:
org.springframework.boot:name=Health,type=Endpoint
#domain = org.springframework.cloud.context.environment:
org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager
#domain = org.springframework.cloud.context.properties:
org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,type=ConfigurationPropertiesRebinder
#domain = org.springframework.cloud.context.scope.refresh:
org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope
$>

same for vets service...

I suppose nothing is instrumented with MicroMeter ??

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions