1.0.1 • Published 2 years ago

@caravellabs/telemetry-reporter v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Caravel Labs Telemetry Reporter

This package reports usage, analytics, and billing telemetry to the Caravel Labs collection endpoint.

Requirements

This package can only be used in server-side code in order to preserve the integrity of customer secret values. If you need to report browser data, you must proxy the request through an API endpoint in your server-side implementation.

You must obtain the first customer secret value from a Caravel Labs administrator. Once you have the secret, you can use this package to automatically rotate it.

Usage

Create in instance of the TelemetryReporter class using your customer key and secret. Optionally, specify retry and error behavior:

import TelemetryReporter from '@caravellabs/telemetry-reporter';

const reporter = new TelemetryReporter(
    'myCustomerKey',
    'myCustomerSecret', 
    {
        maxRetryTime: 10000,
        maxRetries: 20,
        throwOnFailure: true
    });

Report telemetry data

Report simple telemetry transactions with optional additional data in string format:

await reporter.report('myServiceName', 'myFeatureName');
await reporter.report('myServiceName', 'myFeatureName', 'additionalData');

Report custom telemetry metrics in bulk format:

await reporter.report(
    'myServiceName', 
    'myFeatureName', 
    {
        startDate: '2022-01-01T00:00:00.0000000Z',
        endDate: '2022-01-31T23:59:59.9990000Z',
        items: [
            { txnProp1: 'data', txnProp2: 123 },
            { txnProp1: 'data', txnProp2: 123 },
            { txnProp1: 'data', txnProp2: 123 }
        ]
    });

Rotate your secret

Update your customer secret value, specifying an optional duration (in minutes) for which previous secret values will be accepted:

await reporter.updateSecret('myNewSecret', 90);