001package io.ebean.metric;
002
003import io.ebean.meta.MetricVisitor;
004
005/**
006 * A map of timed metrics keyed by a string.
007 */
008public interface TimedMetricMap {
009
010  /**
011   * Add a time event given the start nanos.
012   */
013  void addSinceNanos(String key, long startNanos);
014
015  /**
016   * Add a time event given the start nanos and beans.
017   */
018  void addSinceNanos(String key, long startNanos, int beans);
019
020  /**
021   * Add an execution for the given key.
022   */
023  void add(String key, long exeMicros);
024
025  /**
026   * Add an execution for the given key including row/bean count.
027   */
028  void add(String key, long exeMicros, int rows);
029
030  /**
031   * Visit the metric.
032   */
033  void visit(MetricVisitor visitor);
034}