7.2.0 • Published 8 months ago

@capacitor-firebase/performance v7.2.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
8 months ago

@capacitor-firebase/performance

Unofficial Capacitor plugin for Firebase Performance Monitoring.^1

Installation

npm install @capacitor-firebase/performance firebase
npx cap sync

Add Firebase to your project if you haven't already (Android / iOS / Web).

Android

See Add the Performance Monitoring plugin to your app and follow the instructions to set up your app correctly.

Variables

This plugin will use the following project variables (defined in your app’s variables.gradle file):

  • $firebasePerfVersion version of com.google.firebase:firebase-perf (default: 21.0.4)

Configuration

No configuration required for this plugin.

Demo

A working example can be found here: robingenz/capacitor-firebase-plugin-demo

Usage

import { FirebasePerformance } from '@capacitor-firebase/performance';

const startTrace = async () => {
  await FirebasePerformance.startTrace({ traceName: 'test_trace' });
};

const stopTrace = async () => {
  await FirebasePerformance.stopTrace({ traceName: 'test_trace' });
};

const incrementMetric = async () => {
  await FirebasePerformance.incrementMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
    incrementBy: 1,
  });
};

const setEnabled = async () => {
  await FirebasePerformance.setEnabled({ enabled: true });
};

const isEnabled = async () => {
  const result = await FirebasePerformance.isEnabled();
  return result.enabled;
};

const putAttribute = async () => {
  await FirebasePerformance.putAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
    value: '123',
  });
};

const getAttribute = async () => {
  const result = await FirebasePerformance.getAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
  });
  return result.attributes;
};

const getAttributes = async () => {
  const result = await FirebasePerformance.getAttributes({ traceName: 'test_trace' });
  return result.attributes;
};

const removeAttribute = async () => {
  await FirebasePerformance.removeAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
  });
};

const putMetric = async () => {
  await FirebasePerformance.putMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
    num: 1,
  });
};

const getMetric = async () => {
  const result = await FirebasePerformance.getMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
  });
  return result.value;
};

const record = async () => {
  await FirebasePerformance.record({
    traceName: 'test_trace',
    startTime: Date.now(),
    duration: 1000,
    options: {
      metrics: {
        item_cache_hit: 1,
      },
      attributes: {
        user_id: '123',
      },
    },
  });
};

API

startTrace(...)

startTrace(options: StartTraceOptions) => Promise<void>

Starts a trace.

ParamType
optionsStartTraceOptions

Since: 0.1.0


stopTrace(...)

stopTrace(options: StopTraceOptions) => Promise<void>

Stops a trace.

ParamType
optionsStopTraceOptions

Since: 0.1.0


incrementMetric(...)

incrementMetric(options: IncrementMetricOptions) => Promise<void>

Atomically increments the metric with the given name for the selected trace by the incrementBy value.

ParamType
optionsIncrementMetricOptions

Since: 0.1.0


setEnabled(...)

setEnabled(options: SetEnabledOptions) => Promise<void>

Enables or disables performance monitoring. Will be applied with the next start of the app.

ParamType
optionsSetEnabledOptions

Since: 0.1.0


isEnabled()

isEnabled() => Promise<IsEnabledResult>

Determines whether performance monitoring is enabled or disabled.

Returns: Promise<IsEnabledResult>

Since: 0.1.0


putAttribute(...)

putAttribute(options: PutAttributeOptions) => Promise<void>

Sets a custom attribute of a trace to a given value.

ParamType
optionsPutAttributeOptions

Since: 6.3.0


getAttribute(...)

getAttribute(options: GetAttributeOptions) => Promise<GetAttributeResult>

Returns the value of a custom attribute of a trace.

ParamType
optionsGetAttributeOptions

Returns: Promise<GetAttributeResult>

Since: 6.3.0


getAttributes(...)

getAttributes(options: GetAttributesOptions) => Promise<GetAttributesResult>

Gets the all the custom attributes of a trace with their values.

ParamType
optionsGetAttributesOptions

Returns: Promise<GetAttributesResult>

Since: 6.3.0


removeAttribute(...)

removeAttribute(options: RemoveAttributeOptions) => Promise<void>

Removes a custom attribute from a trace given its name.

ParamType
optionsGetAttributeOptions

Since: 6.3.0


putMetric(...)

putMetric(options: PutMetricOptions) => Promise<void>

Sets the value of a custom metric.

ParamType
optionsPutMetricOptions

Since: 6.3.0


getMetric(...)

getMetric(options: GetMetricOptions) => Promise<GetMetricResult>

Get the value of a custom metric by name.

ParamType
optionsGetMetricOptions

Returns: Promise<GetMetricResult>

Since: 6.3.0


record(...)

record(options: RecordOptions) => Promise<void>

Records a trace given its name and options.

Only available on web.

ParamType
optionsRecordOptions

Since: 6.3.0


Interfaces

StartTraceOptions

PropTypeDescriptionSince
traceNamestringCustom trace name. Names for custom code traces must meet the following requirements: no leading or trailing whitespace, no leading underscore (_) character, and max length is 100 characters.0.1.0

StopTraceOptions

PropTypeDescriptionSince
traceNamestringName of the trace that was set with startTrace.0.1.0

IncrementMetricOptions

PropTypeDescriptionDefaultSince
traceNamestringName of the trace that was set with startTrace.0.1.0
metricNamestringName of the metric to be incremented.0.1.0
incrementBynumberAmount by which the metric has to be incremented.10.1.0

SetEnabledOptions

PropTypeDescriptionSince
enabledbooleanShould performance monitoring be enabled.0.1.0

IsEnabledResult

PropTypeDescriptionSince
enabledbooleantrue if performance monitoring is enabled, otherwise false.0.1.0

PutAttributeOptions

PropTypeDescriptionSince
traceNamestringName of the trace to set its attribute.6.3.0
attributestringName of the attribute to set its value.6.3.0
valuestringThe value to set to the attribute.6.3.0

GetAttributeResult

PropTypeDescriptionSince
valuestring | nullThe value of the custom attribute.6.3.0

GetAttributeOptions

PropTypeDescriptionSince
traceNamestringName of the trace to set its attribute.6.3.0
attributestringName of the attribute to retrieve its value.6.3.0

GetAttributesResult

PropTypeDescriptionSince
attributes{ key: string: string; }A map of all custom attributes of a trace with their values.6.3.0

GetAttributesOptions

PropTypeDescriptionSince
traceNamestringName of the trace to get its attributes.6.3.0

PutMetricOptions

PropTypeDescriptionSince
traceNamestringName of the trace to set its metric.6.3.0
metricNamestringThe metric name.6.3.0
numnumberThe value to set for the metric. The given value is floored down to the nearest integer.6.3.0

GetMetricResult

PropTypeDescriptionSince
valuenumberThe value of the metric if exists.6.3.0

GetMetricOptions

PropTypeDescriptionSince
traceNamestringName of the trace to get its metric.6.3.0
metricNamestringThe metric name.6.3.0

RecordOptions

PropTypeDescriptionSince
traceNamestringName of the trace to record.6.3.0
startTimenumberStart time of the trace since epoch in milliseconds.6.3.0
durationnumberThe duration of the trace in milliseconds.6.3.0
options{ metrics?: { key: string: number; }; attributes?: { key: string: string; }; }An optional object that holds optional maps of custom metrics and attributes.6.3.0

Type Aliases

RemoveAttributeOptions

GetAttributeOptions

Changelog

See CHANGELOG.md.

License

See LICENSE.

^1: This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries.

6.3.0

1 year ago

6.3.1

1 year ago

7.0.0

11 months ago

7.2.0

8 months ago

7.1.0

10 months ago

6.2.0

1 year ago

6.1.0

1 year ago

6.0.0

2 years ago

5.4.1

2 years ago

5.4.0

2 years ago

5.3.0

2 years ago

5.2.0

2 years ago

5.1.0

2 years ago

5.0.1

2 years ago

5.0.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.3.1

4 years ago

0.5.1

3 years ago

0.3.0

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago