端点 returns 大概是云配置
Endpoint returns presumably cloud config
我有这个简单的控制器
@RestController
@RequestMapping("/metrics")
public class MetricsController {
@GetMapping
@ApiOperation("Get metrics by source")
public ResponseEntity<List<Metric>> getMetricBySource(@RequestParam String source) {
if (source.equalsIgnoreCase("recordings")) {
return new ResponseEntity<>(MetricsConstants.RECORDINGS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("advertisers")) {
return new ResponseEntity<>(MetricsConstants.ADVERTISERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("publishers")) {
return new ResponseEntity<>(MetricsConstants.PUBLISHERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("partners")) {
return new ResponseEntity<>(MetricsConstants.PARTNERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("products")) {
return new ResponseEntity<>(MetricsConstants.PRODUCTS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("regular-users")) {
return new ResponseEntity<>(MetricsConstants.REGULAR_USERS_METRICS, HttpStatus.OK);
}
return null;
}
}
现在,当我尝试通过
访问端点时
localhost:8099/metrics?source=advertisers
我收到以下回复
{
"mem": 947258,
"mem.free": 367038,
"processors": 4,
"instance.uptime": 540532,
"uptime": 556754,
"systemload.average": -1,
"heap.committed": 854016,
"heap.init": 260096,
"heap.used": 486977,
"heap": 3699200,
"nonheap.committed": 95312,
"nonheap.init": 2496,
"nonheap.used": 93242,
"nonheap": 0,
"threads.peak": 61,
"threads.daemon": 37,
"threads.totalStarted": 128,
"threads": 53,
"classes": 13916,
"classes.loaded": 13916,
"classes.unloaded": 0,
"gc.ps_scavenge.count": 13,
"gc.ps_scavenge.time": 150,
"gc.ps_marksweep.count": 3,
"gc.ps_marksweep.time": 341,
"counter.servo.eurekaclient.transport.request": 0,
"counter.servo.eurekaclient.transport.connectionerrors": 0,
"counter.servo.timeouts": 0,
"counter.servo.rejectedexecutions": 0,
"counter.servo.throwables": 0,
"gauge.servo.threadpoolused": 0,
"gauge.servo.response.metrics": 6,
"normalized.servo.rest.totaltime": 0,
"normalized.servo.rest.count": 0,
"gauge.servo.rest.min": 0,
"gauge.servo.rest.max": 0,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00030": 0,
"counter.servo.discoveryclient-httpclient_reuse": 10,
"counter.servo.discoveryclient-httpclient_createnew": 26,
"counter.servo.discoveryclient-httpclient_request": 36,
"counter.servo.discoveryclient-httpclient_release": 36,
"counter.servo.discoveryclient-httpclient_delete": 24,
"normalized.servo.discoveryclient-httpclient_requestconnectiontimer.totaltime":
0.005046033333333333,
"normalized.servo.discoveryclient-httpclient_requestconnectiontimer.count":
0.06666666666666667,
"gauge.servo.discoveryclient-httpclient_requestconnectiontimer.min":
0.017749,
"gauge.servo.discoveryclient-httpclient_requestconnectiontimer.max":
0.12356299999999999,
"normalized.servo.discoveryclient-httpclient_createconnectiontimer.totaltime":
0.0012743166666666665,
"normalized.servo.discoveryclient-httpclient_createconnectiontimer.count":
0.05,
"gauge.servo.discoveryclient-httpclient_createconnectiontimer.min":
0.012288,
"gauge.servo.discoveryclient-httpclient_createconnectiontimer.max":
0.034475,
"gauge.servo.connectioncount": 2,
"normalized.servo.eurekaclient.transport.latency.totaltime": 0,
"normalized.servo.eurekaclient.transport.latency.count": 0,
"gauge.servo.eurekaclient.transport.latency.min": 0,
"gauge.servo.eurekaclient.transport.latency.max": 0,
"gauge.servo.response.star-star.favicon.ico": 42,
"gauge.servo.eurekaclient.registry.lastupdatesec_00240": 0,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00015": 1,
"gauge.servo.response.webjars.star-star": 5,
"gauge.servo.eurekaclient.resolver.endpointssize": 1,
"gauge.servo.eurekaclient.resolver.lastloadtimestamp": 233376,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00240": 0,
"gauge.servo.eurekaclient.transport.quarantinesize": 0,
"gauge.servo.eurekaclient.registry.lastupdatesec_00030": 0,
"gauge.servo.response.v2.api-docs": 126,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00480": 0,
"gauge.servo.eurekaclient.registry.lastupdatesec_00480": 0,
"gauge.servo.response.star-star": 13,
"gauge.servo.response.swagger-resources.configuration.ui": 19,
"normalized.servo.eureka-connection-cleaner-time.totaltime": 0.0009386666666666665,
"normalized.servo.eureka-connection-cleaner-time.count": 0.03333333333333333,
"gauge.servo.eureka-connection-cleaner-time.min": 0.021162,
"gauge.servo.eureka-connection-cleaner-time.max": 0.035158,
"counter.servo.eureka-connection-cleaner-failure": 0,
"gauge.servo.eurekaclient.transport.currentsessionduration": 533378,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00120": 0,
"gauge.servo.eurekaclient.registry.lastupdatesec_00015": 1,
"gauge.servo.response.swagger-resources.configuration.security": 4,
"gauge.servo.eurekaclient.registry.lastupdatesec_00120": 0,
"gauge.servo.response.info": 35,
"gauge.servo.eurekaclient.registration.lastheartbeatsec_00060": 0,
"gauge.servo.eurekaclient.registry.lastupdatesec_00060": 0,
"counter.servo.discoveryclient_reconcilehashcodemismatch": 0,
"normalized.servo.discoveryclient_fetchregistry.totaltime": 0.29706815000000003,
"normalized.servo.discoveryclient_fetchregistry.count": 0.03333333333333333,
"gauge.servo.discoveryclient_fetchregistry.min": 4.337664999999999,
"gauge.servo.discoveryclient_fetchregistry.max": 13.486424,
"counter.servo.discoveryclient_reregister": 0,
"gauge.servo.eurekaclient.registry.localregistrysize": 5,
"gauge.servo.eurekaclient.registry.lastsuccessfulregistryfetchtimeperiod":
22920,
"gauge.servo.eurekaclient.registration.lastsuccessfulheartbeattimeperiod":
22926,
"gauge.servo.response.swagger-resources": 5,
"integration.channel.errorChannel.errorRate.mean": 0,
"integration.channel.errorChannel.errorRate.max": 0,
"integration.channel.errorChannel.errorRate.min": 0,
"integration.channel.errorChannel.errorRate.stdev": 0,
"integration.channel.errorChannel.errorRate.count": 0,
"integration.channel.errorChannel.sendCount": 0,
"integration.channel.errorChannel.sendRate.mean": 0,
"integration.channel.errorChannel.sendRate.max": 0,
"integration.channel.errorChannel.sendRate.min": 0,
"integration.channel.errorChannel.sendRate.stdev": 0,
"integration.channel.errorChannel.sendRate.count": 0,
"integration.channel.springCloudBusInput.errorRate.mean": 0,
"integration.channel.springCloudBusInput.errorRate.max": 0,
"integration.channel.springCloudBusInput.errorRate.min": 0,
"integration.channel.springCloudBusInput.errorRate.stdev": 0,
"integration.channel.springCloudBusInput.errorRate.count": 0,
"integration.channel.springCloudBusInput.sendCount": 0,
"integration.channel.springCloudBusInput.sendRate.mean": 0,
"integration.channel.springCloudBusInput.sendRate.max": 0,
"integration.channel.springCloudBusInput.sendRate.min": 0,
"integration.channel.springCloudBusInput.sendRate.stdev": 0,
"integration.channel.springCloudBusInput.sendRate.count": 0,
"integration.channel.hystrixStreamOutput.errorRate.mean": 0,
"integration.channel.hystrixStreamOutput.errorRate.max": 0,
"integration.channel.hystrixStreamOutput.errorRate.min": 0,
"integration.channel.hystrixStreamOutput.errorRate.stdev": 0,
"integration.channel.hystrixStreamOutput.errorRate.count": 0,
"integration.channel.hystrixStreamOutput.sendCount": 0,
"integration.channel.hystrixStreamOutput.sendRate.mean": 0,
"integration.channel.hystrixStreamOutput.sendRate.max": 0,
"integration.channel.hystrixStreamOutput.sendRate.min": 0,
"integration.channel.hystrixStreamOutput.sendRate.stdev": 0,
"integration.channel.hystrixStreamOutput.sendRate.count": 0,
"integration.channel.nullChannel.errorRate.mean": 0,
"integration.channel.nullChannel.errorRate.max": 0,
"integration.channel.nullChannel.errorRate.min": 0,
"integration.channel.nullChannel.errorRate.stdev": 0,
"integration.channel.nullChannel.errorRate.count": 0,
"integration.channel.nullChannel.sendCount": 0,
"integration.channel.nullChannel.sendRate.mean": 0,
"integration.channel.nullChannel.sendRate.max": 0,
"integration.channel.nullChannel.sendRate.min": 0,
"integration.channel.nullChannel.sendRate.stdev": 0,
"integration.channel.nullChannel.sendRate.count": 0,
"integration.channel.springCloudBusOutput.errorRate.mean": 0,
"integration.channel.springCloudBusOutput.errorRate.max": 0,
"integration.channel.springCloudBusOutput.errorRate.min": 0,
"integration.channel.springCloudBusOutput.errorRate.stdev": 0,
"integration.channel.springCloudBusOutput.errorRate.count": 0,
"integration.channel.springCloudBusOutput.sendCount": 0,
"integration.channel.springCloudBusOutput.sendRate.mean": 0,
"integration.channel.springCloudBusOutput.sendRate.max": 0,
"integration.channel.springCloudBusOutput.sendRate.min": 0,
"integration.channel.springCloudBusOutput.sendRate.stdev": 0,
"integration.channel.springCloudBusOutput.sendRate.count": 0,
"integration.handler._org.springframework.integration.errorLogger.handler.duration.mean":
0,
"integration.handler._org.springframework.integration.errorLogger.handler.duration.max":
0,
"integration.handler._org.springframework.integration.errorLogger.handler.duration.min":
0,
"integration.handler._org.springframework.integration.errorLogger.handler.duration.stdev":
0,
"integration.handler._org.springframework.integration.errorLogger.handler.duration.count":
0,
"integration.handler._org.springframework.integration.errorLogger.handler.activeCount":
0,
"integration.handlerCount": 1,
"integration.channelCount": 5,
"integration.sourceCount": 0,
"httpsessions.max": -1,
"httpsessions.active": 0,
"datasource.primary.active": 0,
"datasource.primary.usage": 0 }
代码流甚至没有转到方法(尝试使用调试器)。
只有这个新创建的端点存在问题。最后一个错误是
Full authentication is required to access this resource
直到我写了一段配置:
management:
security:
enabled: false
我用
springBootVersion = '1.5.3.RELEASE'
springCloudVersion = 'Dalston.RELEASE'
问题出在 Spring Cloud MetricsInterceptorConfiguration。
据我了解,您可以在每个端点上添加后缀路径 /metrics 以查看 Spring Cloud 提供的此端点的指标。所以它只是拦截了我的映射:)
我通过向 bootstrap.yml 添加以下配置解决了这个问题:
endpoints:
metrics:
enabled: false
我有这个简单的控制器
@RestController
@RequestMapping("/metrics")
public class MetricsController {
@GetMapping
@ApiOperation("Get metrics by source")
public ResponseEntity<List<Metric>> getMetricBySource(@RequestParam String source) {
if (source.equalsIgnoreCase("recordings")) {
return new ResponseEntity<>(MetricsConstants.RECORDINGS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("advertisers")) {
return new ResponseEntity<>(MetricsConstants.ADVERTISERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("publishers")) {
return new ResponseEntity<>(MetricsConstants.PUBLISHERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("partners")) {
return new ResponseEntity<>(MetricsConstants.PARTNERS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("products")) {
return new ResponseEntity<>(MetricsConstants.PRODUCTS_METRICS, HttpStatus.OK);
} else if (source.equalsIgnoreCase("regular-users")) {
return new ResponseEntity<>(MetricsConstants.REGULAR_USERS_METRICS, HttpStatus.OK);
}
return null;
}
}
现在,当我尝试通过
访问端点时
localhost:8099/metrics?source=advertisers
我收到以下回复
{ "mem": 947258, "mem.free": 367038, "processors": 4, "instance.uptime": 540532, "uptime": 556754, "systemload.average": -1, "heap.committed": 854016, "heap.init": 260096, "heap.used": 486977, "heap": 3699200, "nonheap.committed": 95312, "nonheap.init": 2496, "nonheap.used": 93242, "nonheap": 0, "threads.peak": 61, "threads.daemon": 37, "threads.totalStarted": 128, "threads": 53, "classes": 13916, "classes.loaded": 13916, "classes.unloaded": 0, "gc.ps_scavenge.count": 13, "gc.ps_scavenge.time": 150, "gc.ps_marksweep.count": 3, "gc.ps_marksweep.time": 341, "counter.servo.eurekaclient.transport.request": 0, "counter.servo.eurekaclient.transport.connectionerrors": 0, "counter.servo.timeouts": 0, "counter.servo.rejectedexecutions": 0, "counter.servo.throwables": 0, "gauge.servo.threadpoolused": 0, "gauge.servo.response.metrics": 6, "normalized.servo.rest.totaltime": 0, "normalized.servo.rest.count": 0, "gauge.servo.rest.min": 0, "gauge.servo.rest.max": 0, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00030": 0, "counter.servo.discoveryclient-httpclient_reuse": 10, "counter.servo.discoveryclient-httpclient_createnew": 26, "counter.servo.discoveryclient-httpclient_request": 36, "counter.servo.discoveryclient-httpclient_release": 36, "counter.servo.discoveryclient-httpclient_delete": 24, "normalized.servo.discoveryclient-httpclient_requestconnectiontimer.totaltime": 0.005046033333333333, "normalized.servo.discoveryclient-httpclient_requestconnectiontimer.count": 0.06666666666666667, "gauge.servo.discoveryclient-httpclient_requestconnectiontimer.min": 0.017749, "gauge.servo.discoveryclient-httpclient_requestconnectiontimer.max": 0.12356299999999999, "normalized.servo.discoveryclient-httpclient_createconnectiontimer.totaltime": 0.0012743166666666665, "normalized.servo.discoveryclient-httpclient_createconnectiontimer.count": 0.05, "gauge.servo.discoveryclient-httpclient_createconnectiontimer.min": 0.012288, "gauge.servo.discoveryclient-httpclient_createconnectiontimer.max": 0.034475, "gauge.servo.connectioncount": 2, "normalized.servo.eurekaclient.transport.latency.totaltime": 0, "normalized.servo.eurekaclient.transport.latency.count": 0, "gauge.servo.eurekaclient.transport.latency.min": 0, "gauge.servo.eurekaclient.transport.latency.max": 0, "gauge.servo.response.star-star.favicon.ico": 42, "gauge.servo.eurekaclient.registry.lastupdatesec_00240": 0, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00015": 1, "gauge.servo.response.webjars.star-star": 5, "gauge.servo.eurekaclient.resolver.endpointssize": 1, "gauge.servo.eurekaclient.resolver.lastloadtimestamp": 233376, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00240": 0, "gauge.servo.eurekaclient.transport.quarantinesize": 0, "gauge.servo.eurekaclient.registry.lastupdatesec_00030": 0, "gauge.servo.response.v2.api-docs": 126, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00480": 0, "gauge.servo.eurekaclient.registry.lastupdatesec_00480": 0, "gauge.servo.response.star-star": 13, "gauge.servo.response.swagger-resources.configuration.ui": 19, "normalized.servo.eureka-connection-cleaner-time.totaltime": 0.0009386666666666665, "normalized.servo.eureka-connection-cleaner-time.count": 0.03333333333333333, "gauge.servo.eureka-connection-cleaner-time.min": 0.021162, "gauge.servo.eureka-connection-cleaner-time.max": 0.035158, "counter.servo.eureka-connection-cleaner-failure": 0, "gauge.servo.eurekaclient.transport.currentsessionduration": 533378, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00120": 0, "gauge.servo.eurekaclient.registry.lastupdatesec_00015": 1, "gauge.servo.response.swagger-resources.configuration.security": 4, "gauge.servo.eurekaclient.registry.lastupdatesec_00120": 0, "gauge.servo.response.info": 35, "gauge.servo.eurekaclient.registration.lastheartbeatsec_00060": 0, "gauge.servo.eurekaclient.registry.lastupdatesec_00060": 0, "counter.servo.discoveryclient_reconcilehashcodemismatch": 0, "normalized.servo.discoveryclient_fetchregistry.totaltime": 0.29706815000000003, "normalized.servo.discoveryclient_fetchregistry.count": 0.03333333333333333, "gauge.servo.discoveryclient_fetchregistry.min": 4.337664999999999, "gauge.servo.discoveryclient_fetchregistry.max": 13.486424, "counter.servo.discoveryclient_reregister": 0, "gauge.servo.eurekaclient.registry.localregistrysize": 5, "gauge.servo.eurekaclient.registry.lastsuccessfulregistryfetchtimeperiod": 22920, "gauge.servo.eurekaclient.registration.lastsuccessfulheartbeattimeperiod": 22926, "gauge.servo.response.swagger-resources": 5, "integration.channel.errorChannel.errorRate.mean": 0, "integration.channel.errorChannel.errorRate.max": 0, "integration.channel.errorChannel.errorRate.min": 0, "integration.channel.errorChannel.errorRate.stdev": 0, "integration.channel.errorChannel.errorRate.count": 0, "integration.channel.errorChannel.sendCount": 0, "integration.channel.errorChannel.sendRate.mean": 0, "integration.channel.errorChannel.sendRate.max": 0, "integration.channel.errorChannel.sendRate.min": 0, "integration.channel.errorChannel.sendRate.stdev": 0, "integration.channel.errorChannel.sendRate.count": 0, "integration.channel.springCloudBusInput.errorRate.mean": 0, "integration.channel.springCloudBusInput.errorRate.max": 0, "integration.channel.springCloudBusInput.errorRate.min": 0, "integration.channel.springCloudBusInput.errorRate.stdev": 0, "integration.channel.springCloudBusInput.errorRate.count": 0, "integration.channel.springCloudBusInput.sendCount": 0, "integration.channel.springCloudBusInput.sendRate.mean": 0, "integration.channel.springCloudBusInput.sendRate.max": 0, "integration.channel.springCloudBusInput.sendRate.min": 0, "integration.channel.springCloudBusInput.sendRate.stdev": 0, "integration.channel.springCloudBusInput.sendRate.count": 0, "integration.channel.hystrixStreamOutput.errorRate.mean": 0, "integration.channel.hystrixStreamOutput.errorRate.max": 0, "integration.channel.hystrixStreamOutput.errorRate.min": 0, "integration.channel.hystrixStreamOutput.errorRate.stdev": 0, "integration.channel.hystrixStreamOutput.errorRate.count": 0, "integration.channel.hystrixStreamOutput.sendCount": 0, "integration.channel.hystrixStreamOutput.sendRate.mean": 0, "integration.channel.hystrixStreamOutput.sendRate.max": 0, "integration.channel.hystrixStreamOutput.sendRate.min": 0, "integration.channel.hystrixStreamOutput.sendRate.stdev": 0, "integration.channel.hystrixStreamOutput.sendRate.count": 0, "integration.channel.nullChannel.errorRate.mean": 0, "integration.channel.nullChannel.errorRate.max": 0, "integration.channel.nullChannel.errorRate.min": 0, "integration.channel.nullChannel.errorRate.stdev": 0, "integration.channel.nullChannel.errorRate.count": 0, "integration.channel.nullChannel.sendCount": 0, "integration.channel.nullChannel.sendRate.mean": 0, "integration.channel.nullChannel.sendRate.max": 0, "integration.channel.nullChannel.sendRate.min": 0, "integration.channel.nullChannel.sendRate.stdev": 0, "integration.channel.nullChannel.sendRate.count": 0, "integration.channel.springCloudBusOutput.errorRate.mean": 0, "integration.channel.springCloudBusOutput.errorRate.max": 0, "integration.channel.springCloudBusOutput.errorRate.min": 0, "integration.channel.springCloudBusOutput.errorRate.stdev": 0, "integration.channel.springCloudBusOutput.errorRate.count": 0, "integration.channel.springCloudBusOutput.sendCount": 0, "integration.channel.springCloudBusOutput.sendRate.mean": 0, "integration.channel.springCloudBusOutput.sendRate.max": 0, "integration.channel.springCloudBusOutput.sendRate.min": 0, "integration.channel.springCloudBusOutput.sendRate.stdev": 0, "integration.channel.springCloudBusOutput.sendRate.count": 0, "integration.handler._org.springframework.integration.errorLogger.handler.duration.mean": 0, "integration.handler._org.springframework.integration.errorLogger.handler.duration.max": 0, "integration.handler._org.springframework.integration.errorLogger.handler.duration.min": 0, "integration.handler._org.springframework.integration.errorLogger.handler.duration.stdev": 0, "integration.handler._org.springframework.integration.errorLogger.handler.duration.count": 0, "integration.handler._org.springframework.integration.errorLogger.handler.activeCount": 0, "integration.handlerCount": 1, "integration.channelCount": 5, "integration.sourceCount": 0, "httpsessions.max": -1, "httpsessions.active": 0, "datasource.primary.active": 0, "datasource.primary.usage": 0 }
代码流甚至没有转到方法(尝试使用调试器)。 只有这个新创建的端点存在问题。最后一个错误是
Full authentication is required to access this resource
直到我写了一段配置:
management:
security:
enabled: false
我用
springBootVersion = '1.5.3.RELEASE'
springCloudVersion = 'Dalston.RELEASE'
问题出在 Spring Cloud MetricsInterceptorConfiguration。
据我了解,您可以在每个端点上添加后缀路径 /metrics 以查看 Spring Cloud 提供的此端点的指标。所以它只是拦截了我的映射:)
我通过向 bootstrap.yml 添加以下配置解决了这个问题:
endpoints:
metrics:
enabled: false