@reportfy/apm
TypeScript icon, indicating that this package has built-in type declarations

1.9.1 • Public • Published

@reportfy/apm

npm version install size npm downloads

reportfy

Apm para clientes backend com uso de node.js.

Sobre reportfy: clique aqui

Sobre a apm.

instalação

Usando npm:

$ npm install @reportfy/apm --save

Usando yarn:

$ yarn add @reportfy/apm

Configuração

Para configuração é necessário acessar o sistema da reporfy e criar sua APM, com isso terá o token para integração do sdk.

Após a instalação do seu sdk no seu package.json iremos para iniciar o projeto.

const { init } = require('@reportfy/apm')

init({
    key: 'sua_chave_aqui',
    environment: 'development',
    accessKey: 'access_key_workspace', 
    secretKey: 'secret_key_workspace',
    log: false,
    tracing: false
})
  • [x] O campo key é obrigatório para que seus logs e erros de aplicação sejam enviados para reportfy. -[x] O campo accessKey é obrigatório, chave secreta para leitura de dados que contém criptografia da sua área de trabalho(workspace). -[x] O campo accessKey é obrigatório, chave secreta para leitura de dados que contém criptografia da sua área de trabalho(workspace).
  • [x] O campo environment é opcional, ele serve para identificar os logs, issues, handler e tracing do seu ambiente. Por default a .environment é development.
  • [x] O campo tracing é opcional, ele serve para realizar tracing http da sua api. Por default a tracing é false.
  • [x] O campo log é opcional, ele serve para realizar logs da sua aplicação usando a função console.log. Por default a log é false.

Observação:

Caso queira desconsiderar os erros da sua aplicação, basta informar o environment com o valor tester.

Api

O reportfy é compatível com os seguintes frameworks:

Segue os exemplos abaixo:

Express

Exemplo base para criação de uma api no framework express.

const express = require('express')
const { init } = require('@reportfy/apm')

const app = express()
init({ 
  key: 'sua_chave_aqui', 
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

app.use(express.json({}))

const port = process.env.PORT || 3000

app.listen(3000, () => console.log('Aplicão no ar: http://localhost:3000'))

NestJS

Exemplo base para criação de uma api no framework nestJS.

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import {  init } from '@reportfy/apm'

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

Koa

Exemplo base para criação de uma api no framework koa.

const Koa = require('koa');
const koaBody = require('koa-body');
const app = new Koa();
const Router = require('koa-router');

const { init } = require('@reportfy/apm')

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

app.use(koaBody());


// Prefix all routes with: /books
const router = new Router({
  prefix: '/api'
});


router.get('/user', (ctx, next) => {
  ctx.body = {name: 'hello world'}
  next();
});

// Use the Router on the sub route /books
app.use(router.routes());

app.listen(3000);

module.exports = app

AdonisJS

Exemplo base para criação de uma api no framework adonisJS.

import 'reflect-metadata'
import sourceMapSupport from 'source-map-support'
import { Ignitor } from '@adonisjs/core/build/standalone'

import { init } from '@reportfy/apm'

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

sourceMapSupport.install({ handleUncaughtExceptions: false })

new Ignitor(__dirname)
        .httpServer()
        .start()

HapiJS

Exemplo base para criação de uma api no framework HapiJS.

const Hapi = require('@hapi/hapi')
const { init }  = require('@reportfy/apm')

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

const server = Hapi.server({
  port: 3000,
  host: 'localhost'
});

server.route({
  method: 'POST',
  path: '/api/user',
  handler: (request, reply) => {
    return request.payload
  }
});

server.start();

module.exports = server

RestifyJS

Exemplo base para criação de uma api no framework RestifyJS.

const restify = require('restify');
const { init } = require('@reportfy/apm')

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

const server = restify.createServer();

server.get('/api/user', (req, res) => {
  return res.send()
});

server.post('/api/user', (req, res) => {
  return res.send()
});

server.listen(3000)

module.exports = server;

Sails

Exemplo base para criação de uma api no framework Sails.

process.chdir(__dirname);

const { init } = require('@reportfy/apm')

init({
  key: 'sua_chave_aqui',
  environment: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})


// Attempt to import `sails` dependency, as well as `rc` (for loading `.sailsrc` files).
var sails;
var rc;
try {
  sails = require('sails');
  rc = require('sails/accessible/rc');
} catch (err) {
  console.error('Encountered an error when attempting to require(\'sails\'):');
  console.error(err.stack);
  console.error('--');
  console.error('To run an app using `node app.js`, you need to have Sails installed');
  console.error('locally (`./node_modules/sails`).  To do that, just make sure you\'re');
  console.error('in the same directory as your app and run `npm install`.');
  console.error();
  console.error('If Sails is installed globally (i.e. `npm install -g sails`) you can');
  console.error('also run this app with `sails lift`.  Running with `sails lift` will');
  console.error('not run this file (`app.js`), but it will do exactly the same thing.');
  console.error('(It even uses your app directory\'s local Sails install, if possible.)');
  return;
}//-•


// Start server
sails.lift(rc('sails'));

Logs

Para que o reportfy identifique os logs do seu sistema, necessita de alguns parâmetros, que são:

  • [x] type é uma forma de identificar qual seria o error. Temos os seguintes info, warn e error.
  • [x] message é uma forma de salvar a mensagem do log, nesse campo ele receberá os tipos boolean, string, array e object.
  • [x] tag é uma forma de identificar o log, esse campo é uma forma de fazer tracing dos seus logs.

Para utilizar os logs na aplicação, segue o exemplo abaixo:

console.log({ 
  type: 'info',
  message: 'hello world',
  tag: 'hello'
})

A saída esperado no terminal, é:

@reportfy.log hello world

custom

Para que o reportfy gerencia o seus erros costomizados ele necessita de alguns parâmetros, que são:

  • [x] origin é uma forma de identificar em qual momento partiu seria o error.
  • [x] message é uma forma de salvar a mensagem do erro costomizado, nesse campo ele receberá os tipos string.
  • [x] stack é uma forma de identificar o a stack tracer do seu erro, nesse campo ele receberá os tipos boolean, string, array e object.

Para utilizar o erro costomizado na sua aplicação, segue o exemplo abaixo:

const reportfyApm = require('@reportfy/apm')

const { customError } = reportfyApm.init({
  key: 'sua_chave_aqui', 
  env: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

customError({
  origin: "origin_aqui",
  message: "message_aqui",
  stack: "stack_aqui"
})

Esse erro é salvo no reportfy como tipo events.

Dependencies (3)

Dev Dependencies (2)

Package Sidebar

Install

npm i @reportfy/apm

Weekly Downloads

9

Version

1.9.1

License

MIT

Unpacked Size

178 kB

Total Files

89

Last publish

Collaborators

  • reportfy