The observe() method of the PerformanceObserver interface is used to specify the set of performance entry types to observe. The performance entry types are specified as an array of DOMString objects, each naming one entry type; the type names are documented in Performance entry type names in PerformanceEntry.entryType.

When a matching performance entry is recorded, the performance observer's callback function—set when creating the PerformanceObserver—is invoked.




A PerformanceObserverInit dictionary with the following possible members:
  • entryTypes: An array of DOMString objects, each specifying one performance entry type to observe. May not be used together with the "type" or "buffered" options.
  • type: A single DOMString specifying exactly one performance entry type to observe. May not be used together with the entryTypes option.
  • buffered: A Boolean flag to indicate whether buffered entries should be queued into the observer's buffer. Must be used only with the "type" option.

See PerformanceEntry.entryType for a list of valid performance entry type names. Unrecognized types are ignored, though the browser may output a warning message to the console to help developers debug their code. If no valid types are found, observe() has no effect.


This example creates and configures two PerformanceObservers; one watches for "mark" and "frame" events, and the other watches for "measure" events.

var observer = new PerformanceObserver(function(list, obj) {
  var entries = list.getEntries();
  for (var i=0; i < entries.length; i++) {
    // Process "mark" and "frame" events
observer.observe({entryTypes: ["mark", "frame"]});

function perf_observer(list, observer) {
  // Process the "measure" event
var observer2 = new PerformanceObserver(perf_observer);
observer2.observe({entryTypes: ["measure"]});


Specification Status Comment
Performance Timeline Level 2
The definition of 'observe()' in that specification.
Candidate Recommendation Initial definition of observe() method.

Browser compatibility

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
observeChrome Full support 52Edge Full support ≤79Firefox Full support 57IE No support NoOpera Full support 39Safari Full support 11WebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 57Opera Android Full support 41Safari iOS Full support 11Samsung Internet Android Full support 6.0


Full support
Full support
No support
No support