/* * Galaxy * Copyright (c) 2012-2014, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 3.0 * as published by the Free Software Foundation. */ package co.paralleluniverse.galaxy.core; import co.paralleluniverse.common.monitoring.Metrics; import com.codahale.metrics.Meter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import java.util.concurrent.TimeUnit; /** * * @author pron */ public class MetricsBackupMonitor implements BackupMonitor { private final Meter backups = Metrics.meter(metric("backups")); private final Meter replicationBackups = Metrics.meter(metric("replicationBackups")); private final Meter backupPackets = Metrics.meter(metric("backupPacketsSent")); private final Timer slavesAckTime = Metrics.timer(metric("slavesAckTime")); private final Timer serverAckTime = Metrics.timer(metric("serverAckTime")); protected final String metric(String name) { return MetricRegistry.name("co.paralleluniverse", "galaxy", "Cache", name); } @Override public void addReplicationBackup(int num) { replicationBackups.mark(num); } @Override public void addBackups(int num) { backups.mark(num); } @Override public void addBackupPacket() { backupPackets.mark(); } @Override public void addSlaveAckTime(long nanos) { slavesAckTime.update(nanos, TimeUnit.NANOSECONDS); } @Override public void addServerAckTime(long nanos) { serverAckTime.update(nanos, TimeUnit.NANOSECONDS); } }