Skip to main content

Event

Abyss Monitor lets you send events from your Application. Each event is stored with its details (name, level, extra data) and can be linked to a log for full traceability.

Events help you track the functional activity of your Application: user signup, payment, business error, critical action, etc.

Naming convention

Event names use dotted notation a.b.c. This structure enables automatic aggregation in Abyss Monitor:

  • sending auth.user.signup also increments auth and auth.user,
  • sending auth.user.login also increments auth and auth.user,
  • sending billing.invoice.paid also increments billing and billing.invoice.

You get domain-level views without duplicating data.

info

Stay consistent with your hierarchy: entity.action or domain.entity.action. SCREAMING_CASE or kebab-case names work, but avoid mixing styles between events.

Levels

Each event carries a level (DEBUG, INFO, WARN, ERROR, CRITICAL). The level is used for filtering in the UI and for alert or webhook rules.

Send an event

In your code, attach applicationEvent to a log:

logger.info('User signup !', {
applicationEvent: {
event: 'auth.user.signup',
level: LogLevel.INFO,
data: { userId: user.id },
},
});

The log is sent to Abyss Monitor, the event is extracted, aggregated and stored. Whatever you put in data is kept and visible on the event page.

Inspect your events

From the Events tab of your Application you can:

  • filter by name (prefix, exact, level),
  • see the event volume per day / hour,
  • inspect an event's detail (linked log, extra data),
  • cross-reference an event with the logs of the same request.

Events can also trigger webhooks with scope EVENT to forward the information to an external system.