Я хочу создать новую конечную точку, которая расширяет существующую конечную точку jhimetrics
(или расширяет результаты существующей jhimetrics
). Приложение создано с помощью JHipster. Итак, что я сделал:
- добавил новую конечную точку в массив в
application.yml
файле, а именно:
management:
endpoints:
web:
base-path: /management
exposure:
include: [ ..., "health", "info", "jhimetrics", "roxhens"]
- создал
ExtendedMetricsEndpoint.java
со следующим содержанием:
// imports, etc...
@Endpoint(id = "roxhens")
public class ExtendedMetricsEndpoint {
private final JHipsterMetricsEndpoint delegate;
private final SimpUserRegistry simpUserRegistry;
public ExtendedMetricsEndpoint(
JHipsterMetricsEndpoint delegate,
SimpUserRegistry simpUserRegistry
) {
this.delegate = delegate;
this.simpUserRegistry = simpUserRegistry;
}
@ReadOperation
public Map<String, Map> getMetrics() {
Map<String, Map> metrics = this.delegate.allMetrics();
HashMap<String, Integer> activeUsers = new HashMap<>();
activeUsers.put("activeUsers", this.simpUserRegistry.getUserCount());
metrics.put("customMetrics", new HashMap(activeUsers));
return metrics;
}
}
- создал файл конфигурации для этой конечной точки:
// imports etc...
@Configuration
@ConditionalOnClass(Timed.class)
@AutoConfigureAfter(JHipsterMetricsEndpointConfiguration.class)
public class ExtendedMetricsEndpointConfiguration {
@Bean
@ConditionalOnBean({JHipsterMetricsEndpoint.class, SimpUserRegistry.class})
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
public ExtendedMetricsEndpoint extendedMetricsEndpoint(JHipsterMetricsEndpoint jHipsterMetricsEndpoint, SimpUserRegistry simpUserRegistry) {
return new ExtendedMetricsEndpoint(jHipsterMetricsEndpoint, simpUserRegistry);
}
}
Какой шаг мне здесь не хватает или что я делаю не так?