@caravellabs/telemetry-reporter
v1.0.1
Published
A telemetry reporter for analytics and usage data for Caravel Labs projects and customers.
Downloads
16
Readme
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);