Gap can occur if LNS is unable to keep pace and the log buffer is recycled before the redo can be transmitted to the standby.
so how can we detect gap on our Dataguard environment?
some people use this method.
SQL> archive log list;
SQL> select max(sequence#) from v$archived_log;
SQL> select sequence#, archived, applied from v$archived_log where applied='YES' order by 1;
Oracle Data Guard provide us with a simple view to detect a gap. we just need to query to that views.
SQL> select * v$archive_gap;
if there's no row selected, you have no gap in your oracle data guard.
don't forget to check your alert log
tail -10000f "your alert.log location"