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.