class MetricsTableConfigHelper extends AbstractTableConfigHelper {

    @Override
    public void configure(TableOperations tops) throws AccumuloException, AccumuloSecurityException, TableNotFoundException {
        if (MetricsConfiguration.isEnabled(conf)) {
            try {
                String table = MetricsConfiguration.getTable(conf);
                
                if (!table.equals(this.tableName)) {
                    throw new IllegalArgumentException("Table names did not match. Configuration = " + table + ", Configuration Helper = " + this.tableName);
                }
                
                Collection<MetricsReceiver> receivers = MetricsConfiguration.getReceivers(conf);
                for (MetricsReceiver receiver : receivers) {
                    logger.info("Configuring metrics receiver " + receiver);
                    receiver.configureTable(table, tops, conf);
                }
            } catch (Exception e) {
                logger.error("An error occurred while configuring ingest metrics, disabling", e);
                MetricsConfiguration.disable(conf);
            }
        }
    }

}