下面列出了怎么用org.springframework.boot.actuate.endpoint.PublicMetrics的API类实例代码及写法,或者点击链接到github查看源代码。
@Bean
public MossMetricsEndpoint haloMetricsEndpoint(){
List<PublicMetrics> publicMetrics = new ArrayList<PublicMetrics>();
if (this.publicMetrics != null) {
publicMetrics.addAll(this.publicMetrics);
}
Collections.sort(publicMetrics, AnnotationAwareOrderComparator.INSTANCE);
return new MossMetricsEndpoint(publicMetrics);
}
/**
* Create a new {@link org.springframework.boot.actuate.endpoint.MetricsEndpoint} instance.
* @param publicMetrics the metrics to expose. The collection will be sorted using the
* {@link AnnotationAwareOrderComparator}.
*/
public MossMetricsEndpoint(Collection<PublicMetrics> publicMetrics) {
super("metricsInfo");
Assert.notNull(publicMetrics, "PublicMetrics must not be null");
this.publicMetrics = new ArrayList<PublicMetrics>(publicMetrics);
AnnotationAwareOrderComparator.sort(this.publicMetrics);
}
@Override
public List<MetricFamilySamples> collect() {
ArrayList<MetricFamilySamples> samples = new ArrayList<MetricFamilySamples>();
for (PublicMetrics publicMetrics : this.publicMetrics) {
for (Metric<?> metric : publicMetrics.metrics()) {
String name = Collector.sanitizeMetricName(metric.getName());
double value = metric.getValue().doubleValue();
MetricFamilySamples metricFamilySamples = new MetricFamilySamples(
name, Type.GAUGE, name, Collections.singletonList(
new MetricFamilySamples.Sample(name, Collections.<String>emptyList(), Collections.<String>emptyList(), value)));
samples.add(metricFamilySamples);
}
}
return samples;
}
public AdminEndPointConfiguration(ObjectProvider<Collection<PublicMetrics>> publicMetrics) {
this.publicMetrics = publicMetrics.getIfAvailable();
}
public void registerPublicMetrics(PublicMetrics metrics) {
this.publicMetrics.add(metrics);
AnnotationAwareOrderComparator.sort(this.publicMetrics);
}
public void unregisterPublicMetrics(PublicMetrics metrics) {
this.publicMetrics.remove(metrics);
}
@Override
public HaloMetricResponse invoke() {
HaloMetricResponse haloMetricResponse=new HaloMetricResponse();
Map<String, Object> result = new LinkedHashMap<String, Object>();
List<PublicMetrics> metrics = new ArrayList<PublicMetrics>(this.publicMetrics);
for (PublicMetrics publicMetric : metrics) {
try {
for (Metric<?> metric : publicMetric.metrics()) {
if(THREADS.equals(metric.getName())){
haloMetricResponse.setJvmThreadslive(String.valueOf(metric.getValue()));
}
if(NON_HEAP_Used.equals(metric.getName())){
haloMetricResponse.setJvmMemoryUsedNonHeap(String.valueOf(metric.getValue()));
}
if(HEAP_USED.equals(metric.getName())){
haloMetricResponse.setJvmMemoryUsedHeap(String.valueOf(metric.getValue()));
}
if(HEAP_COMMITTED.equals(metric.getName())){
haloMetricResponse.setHeapCommitted(String.valueOf(metric.getValue()));
}
if(HEAP_INIT.equals(metric.getName())){
haloMetricResponse.setHeapInit(String.valueOf(metric.getValue()));
}
if(HEAP_MAX.equals(metric.getName())){
haloMetricResponse.setHeapMax(String.valueOf(metric.getValue()));
}
getGcInfo(haloMetricResponse, metric);
if(NONHEAP_COMMITTED.equals(metric.getName())){
haloMetricResponse.setNonheapCommitted(String.valueOf(metric.getValue()));
}
if(SYSTEMLOAD_AVERAGE.equals(metric.getName())){
haloMetricResponse.setSystemloadAverage(String.valueOf(metric.getValue()));
}
if(PROCESSORS.equals(metric.getName())){
haloMetricResponse.setProcessors(String.valueOf(metric.getValue()));
}
}
}
catch (Exception ex) {
// Could not evaluate metrics
}
}
return haloMetricResponse;
}
@Autowired
public SpringBootMetricsCollector(Collection<PublicMetrics> publicMetrics) {
this.publicMetrics = publicMetrics;
}
/**
* Create a new {@link org.springframework.boot.actuate.endpoint.MetricsEndpoint} instance.
* @param publicMetrics the metrics to expose
*/
public MossMetricsEndpoint(PublicMetrics publicMetrics) {
this(Collections.singleton(publicMetrics));
}