> ## Documentation Index
> Fetch the complete documentation index at: https://ihub.learnille.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Metrics, Monitoring & Logging (New Relic & Sentry)

> Migrated from the previous Learnille internal documentation hub

## Overview

Learnille utilizes **New Relic** as its primary Observability, Application Performance Monitoring (APM), and Log Management platform, combined with **Sentry** for real-time exception tracking.

***

## 📊 1. Observability Stack Architecture

```
                                [ Learnille Services ]
                                           |
         +---------------------------------+---------------------------------+
         |                                 |                                 |
         v                                 v                                 v
[ NestJS Backend API ]          [ Vite React Frontends ]          [ Background Workers / DB ]
  - New Relic Node.js Agent       - Sentry Browser SDK              - New Relic Infrastructure
  - Winston New Relic Transport   - Web Vitals Tracking             - Redis & Postgres Metrics
         |                                 |                                 |
         +---------------------------------+---------------------------------+
                                           |
                                           v
                       +---------------------------------------+
                       |          New Relic One Hub            |
                       |  - APM & Transaction Tracing          |
                       |  - Centralized Log Analytics          |
                       |  - Real-time Alerting & Dashboards    |
                       +---------------------------------------+
```

***

## 🛠 2. New Relic Integration Setup

### Node.js Backend APM Configuration

In the NestJS server (`server/src/main.ts` and `newrelic.js`):

```javascript theme={null}
// newrelic.js
exports.config = {
  app_name: ['Learnille API (Self-Hosted)'],
  license_key: process.env.NEW_RELIC_LICENSE_KEY,
  logging: {
    level: 'info'
  },
  allow_all_headers: true,
  attributes: {
    exclude: [
      'request.headers.cookie',
      'request.headers.authorization'
    ]
  }
};
```

### Structured Log Transport

Winston logger routes all server logs directly to New Relic using the official `@newrelic/winston-enricher` transport.

***

## 🚨 3. Alerting Thresholds & Dashboards

| Metric | Target SLA | New Relic Alert Condition |
| :- | :- | :- |
| **API Error Rate** | \< 0.5% | Alert triggered if HTTP 5xx rate > 1% for 5 mins. |
| **P95 Transaction Duration** | \< 250ms | Alert triggered if average response time > 500ms for 5 mins. |
| **Database Query Latency** | \< 20ms | Alert triggered if SQL query duration > 100ms. |
| **Host CPU / Memory Utilization** | \< 75% | Alert triggered if host RAM usage > 85%. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.