22 Aralık 2022 Perşembe

HazelcastAPI MetricsService Sınıfı

Giriş
Şu satırı dahil ederiz 
import com.hazelcast.internal.metrics.impl.MetricsService;
Açıklaması şöyle
Service collecting the Metrics periodically and publishes them via MetricsPublishers
Kodu şöyle
public class MetricsService implements ManagedService, LiveOperationsTracker {
  public static final String SERVICE_NAME = "hz:impl:metricsService";

  ...
  private final CopyOnWriteArrayList<MetricsPublisher> publishers = 
    new CopyOnWriteArrayList<>();
  ...
  private volatile ScheduledFuture<?> scheduledFuture;
  ...
}
scheduleMetricsCollectorIfNeeded metodu
scheduledFuture ile bir timer başlatır ve collectMetrics() metodunu tetikler. Timer'ın sıklığı MetricsConfig.getCollectionFrequencySeconds() ile belirlenir.

collectMetrics metodu
Kod şöyle
void collectMetrics() {
  MetricsPublisher[] publishersArr = publishers.toArray(new MetricsPublisher[0]);
  PublisherMetricsCollector publisherCollector = 
    new PublisherMetricsCollector(publishersArr);
  collectMetrics(publisherCollector);
  publisherCollector.publishCollectedMetrics();
}  
PublisherMetricsCollector hem collector hem de publisher. Kalıtım şöyle
 MetricsCollector
  PublisherMetricsCollector

MetricsCollector sınıfının collect metodları var. Bunlar şöyle
void collectLong(MetricDescriptor descriptor, long value);

void collectDouble(MetricDescriptor descriptor, double value);

void collectException(MetricDescriptor descriptor, Exception e);

void collectNoValue(MetricDescriptor descriptor);
collectMetrics metodu - MetricsCollector metricsCollector
Kod şöyle. Yani PublisherMetricsCollector nesnesi MetricsCollector olarak metricsRegistrySupplier nesnesine geçiliyor. Her collectX() metodu çağrılınca PublisherMetricsCollector nesnesi de içindeki publisher'ları tetikliyor.
void collectMetrics(MetricsCollector metricsCollector) {
  metricsRegistrySupplier.get().collect(metricsCollector);
}





Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt