Skip to content

Repository files navigation

📊 devall-analytics

SDK oficial do DevAll Tech Analytics para aplicações JavaScript, TypeScript, React, React Native e Node.js.
Monitore eventos, erros e comportamentos da sua aplicação com facilidade.

npm version License


✨ Recursos

  • ✅ Envio de eventos categorizados (error, warning, info, custom, etc.)
  • ✅ Registro de payloads personalizados
  • ✅ Suporte a múltiplos ambientes (dev, staging, prod)
  • ✅ Captura automática de informações básicas do dispositivo
  • ✅ Compatível com browsers, Node.js e React Native

🚀 Instalação

npm install devall-analytics

ou

yarn add devall-analytics

🛠️ Como usar

1. Inicialize com o token do seu projeto:

import { init } from "devall-analytics"

init("SEU_TOKEN_DO_PROJETO")

2. Envie um evento:

import {
  trackEvent,
  DevAllEventType,
  DevAllEnvironment,
} from "devall-analytics"

await trackEvent({
  type: DevAllEventType.ERROR,
  environment: DevAllEnvironment.DEV,
  category: "Login",
  message: "Erro ao autenticar usuário",
  payload: {
    email: "usuario@exemplo.com",
    erro: "senha inválida",
  },
})

O deviceInfo e o deviceId (persistente por instalação) são preenchidos automaticamente. O ip é opcional e só é enviado quando informado.


⚙️ Configuração avançada

Passe um segundo argumento no init:

import { init, trackEvent, flush } from "devall-analytics"

init("SEU_TOKEN", {
  baseUrl: "https://api-logs.suaempresa.com/api/v1", // self-hosted / staging
  enableBatch: true,      // agrupa eventos em /events/batch
  batchSize: 20,          // flush automático a cada 20 eventos
  flushInterval: 15000,   // ...ou a cada 15s
  maxRetries: 3,          // tentativas em falha (backoff exponencial)
  // httpClient: minhaInstanciaAxios, // injeção p/ testes
})

// Em modo batch, force o envio do que está na fila:
await flush()

Recursos:

  • ✅ URL da API configurável (self-hosted / staging)
  • ✅ Retry automático com backoff exponencial (5xx e falhas de rede)
  • ✅ Modo batch (/events/batch) com flush por tamanho e por tempo
  • ✅ Truncamento automático de message em 500 caracteres
  • deviceId persistente (browser: localStorage, RN: AsyncStorage, Node: arquivo)
  • ✅ Instância axios injetável para testes

🎯 Tipos de Evento

enum DevAllEventType {
  ERROR = "error",
  WARNING = "warning",
  INFO = "info",
  LOG = "log",
  METRIC = "metric",
  CUSTOM = "custom",
}

🌐 Ambientes

enum DevAllEnvironment {
  DEV = "dev",
  STAGING = "staging",
  PROD = "prod",
}

📦 Publicado por DevAll Tech

Este pacote é mantido oficialmente pela equipe da DevAll Tech, empresa especializada em desenvolvimento de apps, sistemas e soluções digitais.


📝 Licença

MIT License © DevAll Tech


Feito com 💙 por DevAll Tech

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages