OpenCensus Web types is a slightly-patched copy of the `types.ts` files from `@opencensus/core` so that they can be easily imported in web-specific packages.

Usage no npm install needed!

<script type="module">
  import opencensusWebTypes from 'https://cdn.skypack.dev/@opencensus/web-types';


OpenCensus Web types

Gitter chat

For overview and usage info see the main OpenCensus Web readme.

This package provides TypeScript interfaces and enums for the OpenCensus core trace and metrics model. These are copied from the OpenCensus Node @opencensus/core package.

The library is in alpha stage and the API is subject to change.

Why not just depend on @opencensus/core?

The @opencensus/core package includes some Node-specific dependencies that make it difficult to import in web-specific packages. This will be particularly true once OpenCensus Web supports building with Bazel (see rules_typescript on GitHub).

This package resolves these dependency issues by copying the types.ts and supporting files from the @opencensus/core. It also uses a polyfill for the NodeJS.EventEmitter type to avoid a dependency on the @types/node package.

Having the types copied will also make it easier to adopt a build with using Bazel (see rules_typescript), Tsickle, and Closure, which would result in more optimized (smaller) JS binary sizes.

How to refresh the types

To refresh the types for a new release (or a non-released commit) of @opencensus/core, modify the copytypes command in the package.json file with the git tag of the new release. You may need to also modify the list of copied files or the patching logic in the scripts/copy-types.js file.

Then run npm run copytypes to copy the types.


Currently the primary intended usage of OpenCensus Web is to collect spans from the resource timing waterfall of an initial page load and trace on-page user interactions with a series of features like automatic tracing for clicks and route transitions, custom spans, and browser [Performance API][performance-api] data. See the OpenCensus Web readme for details.

In the future we would like to support collecting spans for XHRs and other operations made after the initial page load and then join those back to the Resrouce Timing API information for more detailed network timings and events.

Useful links


Apache 2.0 - See LICENSE for more information.