# New Relic no NoLapis

Monitoramento APM (PHP) e Browser (métricas de front-end: LCP, pageload, erros JS).

---

## Nome único da aplicação

Use **apenas** este nome em todo lugar:

```text
Nolapis ERP Prod
```

Variáveis no `.env` de **produção**:

```env
NEW_RELIC_ENABLED=true
NEW_RELIC_APP_NAME="Nolapis ERP Prod"
```

Depois:

```bash
php artisan config:clear
php artisan config:cache
```

No servidor, alinhe também o `newrelic.ini` (cPanel / `/etc/newrelic/newrelic.ini`):

```ini
newrelic.appname = "Nolapis ERP Prod"
```

Assim requisições web **e** cron/CLI (`artisan schedule`) reportam no mesmo app.

---

## Por que apareciam várias entidades?

| Entidade no painel | Causa provável |
|--------------------|----------------|
| **Nolapis Prod** | Nome no `newrelic.ini` ou `env()` quebrado após `config:cache` |
| **Nolapis ERP Prod** | Nome desejado, mas sem tráfego porque o agente não aplicava o nome |
| **Nolapis ERP Runtime Test** | App de teste criado manualmente no painel |

O código usa `config/newrelic.php` (compatível com `config:cache`) e chama `newrelic_set_appname(..., true)` para forçar o envio ao app correto.

---

## Remover entidades duplicadas no painel New Relic

1. **Browser** → abra **Nolapis Prod** → **Application settings** → **Delete application**.
2. Repita para **Nolapis ERP Runtime Test** (se não for mais usado).
3. Mantenha só **Nolapis ERP Prod**.

Se existir duplicata em **APM** (não Browser), em **APM & Services** → app → **Settings** → **Application** → **Delete**.

Aguarde 5–10 minutos após o deploy e acesse o site; os dados devem voltar só em **Nolapis ERP Prod**.

---

## Verificação rápida

```bash
php -m | grep newrelic          # extensão instalada
php artisan tinker --execute="echo config('newrelic.app_name');"
```

No painel: **Browser → Nolapis ERP Prod** deve mostrar throughput, pageload e erros após tráfego real.

---

## Browser (front-end) vs APM (back-end)

São entidades **separadas** no New Relic, mas com o agente PHP o Browser é alimentado por **auto-instrumentação** (JS injetado no HTML). Não há snippet manual no código Laravel.

### Se APM funciona e Browser não (ou fica dividido)

**1. Conferir auto-instrument no servidor** (nos **dois** arquivos):

```bash
grep -i browser /opt/cpanel/ea-php82/root/etc/php.d/newrelic.ini
grep -i browser /opt/cpanel/ea-php82/root/etc/php.d/zz-newrelic-overrides.ini
/opt/cpanel/ea-php82/root/usr/bin/php -i | grep newrelic.browser
```

Deve estar **true**:

```ini
newrelic.browser_monitoring.auto_instrument = true
```

Se estiver `false` ou ausente, edite **`zz-newrelic-overrides.ini`** (ele sobrescreve o outro), reinicie o FPM e teste de novo:

```bash
systemctl restart ea-php82-php-fpm
/scripts/restartsrv_httpd
```

**2. Confirmar que o JS está no HTML**

Abra o site logado, **Ver código-fonte** (Ctrl+U) e busque por `NREUM` ou `newrelic`.  
Se **não aparecer**, o agente não está injetando (auto_instrument off, resposta JSON/AJAX only, ou página em cache).

**3. Cloudflare**

Regras agressivas de cache/minify podem atrapalhar. Garanta **Bypass cache** para URLs autenticadas (`/admin`, cookies de sessão). Rocket Loader desligado no domínio.

**4. Apagar entidades Browser antigas**

No painel **Browser**:

- Delete **Nolapis Prod** (ainda recebe tráfego antigo)
- Delete **Nolapis ERP Runtime Test** (se não usar)

Mantenha só **Nolapis ERP Prod**. Aguarde 15–30 min e navegue no ERP (páginas completas, não só AJAX).

**5. Vincular Browser ao APM (se pedir no painel)**

Em **APM → Nolapis ERP Prod → Settings**, confira se Browser monitoring está **enabled** / linked.

### Por que “Nolapis Prod” ainda aparece no Browser?

Mesmo com o `appname` corrigido, a entidade Browser **Nolapis Prod** continua existindo no painel até você **deletar** manualmente. Páginas em cache ou visitas antigas podem mandar métricas para ela por um tempo; depois some sozinha se a entidade for removida e só **Nolapis ERP Prod** existir.

