@Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final MetricsRecordImpl other = (MetricsRecordImpl) obj;
        if (this.timestamp != other.timestamp()) {
            return false;
        }
        if (!this.name.equals(other.name())) {
            return false;
        }
        if (!this.tags.equals(other.tags())) {
            return false;
        }
        if (!this.metrics.equals(other.metrics())) {
            return false;
        }
        return true;
    }