autotel
Version:
Write Once, Observe Anywhere
85 lines (57 loc) • 2.19 kB
Markdown
---
name: autotel-events
description: >
track(), Event API, subscribers (e.g. PostHog). Configure subscribers in init(); use track() or Event for product/analytics events.
---
# Autotel — Events
Send product and analytics events with `track(name, attributes)` or the `Event` class from `autotel/event`. Configure subscribers (e.g. PostHog) in `init()`; they receive events automatically.
For observability events in new code, prefer log-based correlated events (OTel Logs API model) over introducing new direct span-event instrumentation.
## Setup
```typescript
import { init, track } from 'autotel';
import { PostHogSubscriber } from 'autotel-subscribers/posthog';
init({
service: 'my-app',
subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })],
});
track('checkout.started', { userId: 'u_123', cartId: 'c_456' });
```
With Event instance (optional override of subscribers):
```typescript
import { Event } from 'autotel/event';
const event = new Event('checkout');
event.trackEvent('application.submitted', { jobId: '123', userId: '456' });
```
**Simple track (uses subscribers from init):**
```typescript
track('signup.completed', { plan: 'pro', source: 'web' });
```
**Event with custom subscribers:**
```typescript
import { Event } from 'autotel/event';
import { PostHogSubscriber } from 'autotel-subscribers/posthog';
const event = new Event('onboarding', {
subscribers: [new PostHogSubscriber({ apiKey: 'phc_other_project' })],
});
event.trackEvent('step.completed', { step: 2 });
```
**Validation and config:** See `getEventsConfig()`, `getValidationConfig()` from init; event names and attributes can be validated.
Wrong:
```typescript
track('signup', { plan: 'pro' });
```
Correct:
```typescript
init({
service: 'my-app',
subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })],
});
track('signup', { plan: 'pro' });
```
Subscribers are configured in init(). track() sends to those subscribers; without init or without subscribers, events may not reach the backend.
Source: packages/autotel/src/event.ts
Targets autotel v2.23.x.