百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
A

appmetrics.js

> 编程语言
开源

一个小型 (< 1kb) 库,用于在 Web 应用中测量各种事物,并将结果报告给 Google Analytics。

1.4K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一个小型 (< 1kb) 库,用于在 Web 应用中测量各种事物,并将结果报告给 Google Analytics。

appmetrics.js

A small (803 bytes gzipped) library for measuring things in your web app, annotating the DevTools timeline, and reporting the results to Google Analytics.

This library is a small wrapper around the the User Timing API. It makes it easier to use. appmetrics.js allows you to instrument your app, record performance metrics, and (optionally) report those metrics to Google Analytics. Over time, you'll be able to track the performance of your web app!

What does it do?

If you want to measure the performance of certain events in your web app. How long did that take?

In browsers that support the full User Timing API, this library integrates with DevTools. App measurements in the timeline: Marks you create will also show up in webpagetest.org results: If you chose to send metrics to Google Analytics, values will show up its UI. See below.

Installing

Bower:

bower install --save-dev ebidel/appmetrics.js

npm (https://www.npmjs.com/package/appmetrics.js):

npm install --save-dev appmetrics.js

Usage

Drop one of these on your page:

<script src="bower_components/appmetrics.js/dist/appmetrics.min.js"></script>
  or
<script src="node_modules/appmetrics.js/dist/appmetrics.min.js"></script>

To measure how long something takes in your app, first create a new metric:

let metric = new Metric('my_event'); // each metric name should be unique.

Specify the beginning of your event by calling start(). This adds a mark in the DevTools timeline:

metric.start(); // mark name will be "mark_my_event_start"

When the event completes, call end(). This adds another mark in the DevTools timeline and measures the duration:

metric.end(); // mark name will be "mark_my_event_end".
console.log(`${metric.name} took ${metric.duration} ms`);
metric.log(); // Helper for logging the metric info to the console.

From here, you can examine performance of your measurements in the console: Or view the records in the DevTools Timeline under "Input" (see screen shot above).

Reporting metrics to Google Analytics (optional)

Be sure to load the Google Analytics library on your page.

Metrics can be reported to Google Analytics using sendToAnalytics(<category>). These show up in the Analytics UI under User Timing.

metric1.sendToAnalytics('page load');
metric2.sendToAnalytics('render', 'first paint'); // Optional 2nd arg is an event name
metric3.sendToAnalytics('JS Dependencies', 'load', 1234567890); // Optional 3rd arg to override metric3.duration.

The first argument to sendToAnalytics() is the category of your metric ('load', 'gallery', 'video'). The second argument is an optional name of the metric ('first paint', 'reveal', 'watch_started'). By default, metric.name is used, but oftentimes it's more convenient to send a shorter to Google Analytics so it renders it nicely in its UI.

Values sent to Analytics will show up in its UI under Behavior > Site Speed > User Timings:

Examples

Example - measure how long it takes a json file to load, and report it to Google Analytics:

<script>
  const metric = new Metric('features_loaded');
  metric.start();

  function onFeaturesLoad() {
    metric.end().log().sendToAnalytics('features', 'loaded');
  }
</script>
<script src="features.json" onload="onFeaturesLoad()"></script>

Example - report the first paint to Google Analytics.

…

Browser support

Any browser that supports performance.now()! That's all the modern stuff: Chrome, Firefox, Safari 9.2+, Edge, IE 10, Android Browser 4.4, UC Browser.

Caveat: In Safari, the User Timing API (performance.mark()) is not available, so the DevTools timeline will not be annotated with marks.

See caniuse.com for full support.

Tips

All methods can be chained for easier use:

metric.start();
// ... some time later ...
metric.end().log().sendToAnalytics('extras', 'syntax highlight');

Contributing

Checkout and install the dependencies:

git clone [email protected]:ebidel/appmetrics.js.git
cd appmetrics.js
npm install
gulp

Run the tests

Start a web server in the project directory and navigate to http://localhost:3000/test/. If you makes changes to the library, be sure to run gulp to rebuild the library in /dist.

License

Apache 2. See the LICENSE.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

JavaScriptappmetricsgoogle-analyticslibmetrics

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言