Pacote para utilização de apm do reportfy.com.br


Keywords
apm, nodejs, javascript, perfomance, logs, logger, tracing, request, http, express, koa, adonisjs, nestJS, restify, hapi, sails, report, reportfy, hacktoberfest, hacktoberfest-2021, hacktoberfest2021, hacktoberfest2021-accepted
License
MIT
Install
npm install @reportfy/apm@1.9.1

Documentation

@reportfy/apm

npm version install size npm downloads

reportfy

Apm para clientes express para uso com 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 reportfyApm = require('@reportfy/apm')

const reportfyApm = reportfyApm.init({
    key: 'sua_chave_aqui', 
    env: 'development',
    accessKey: 'access_key_workspace', 
    secretKey: 'secret_key_workspace'
})
  • 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).
  • O campo env é opcional, ele serve para identificar os logs, issues, handler e tracing do seu ambiente. Por default a .env é development.
  • O campo tracing é opcional, ele serve para identificar realizar tracing http da sua api. Por default a tracing é false.

Api

Para que o reportfy escute todas as request do framework express necessita da alocação do captureHandler como middleware, segue o exemplo abaixo:

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

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

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

const port = process.env.PORT || 3000

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

Logs

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

  • type é uma forma de identificar qual seria o error. Temos os seguintes info, warn e error.
  • message é uma forma de salvar a mensagem do log, nesse campo ele receberá os tipos boolean, string, array e object.
  • tag é uma forma de identificar o log, esse campo é uma forma de fazer tracing dos seus logs.
  • debug é uma forma de printar no seu terminal o log quando tiver true caso não queira usar false.

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

const reportfyApm = require('@reportfy/apm')
const reportfyApm = reportfyApm.init({
  key: 'sua_chave_aqui', 
  env: 'development' ,
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

reportfyApm.logger({ 
  type: 'info',
  message: 'hello world',
  tag: 'hello', 
  debug: true 
})

A saída esperado no terminal, é:

17/05/2021 20:12:30 - log {
    "type": "info",
    "tag": "hello",
    "message": "hello world"
}

intercept

Para que o reportfy identifique as integrações do sistema ele necessita do seguinte agente.

Instalando o axios na sua aplicação.

Usando yarn:

$ yarn add axios

Usando npm:

$ npm install axios --save

Para utilizar o interceptador de request na sua aplicação, segue o exemplo abaixo:

const reportfyApm = require('@reportfy/apm')
let axios = require('axios')
const reportfyApm = reportfyApm.init({
  key: 'sua_chave_aqui', 
  env: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})

axios = reportfyApm.intercept(axios)

axios({
  url: 'http://request_aqui',
  method: 'método',
  data: {}
})
    .then(resp => console.log('response', resp))
    .catch(err => console.log('error', err))

custom

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

  • origin é uma forma de identificar em qual momento partiu seria o error.
  • message é uma forma de salvar a mensagem do erro costomizado, nesse campo ele receberá os tipos string.
  • 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')
let axios = require('axios')
const reportfyApm = reportfyApm.init({
  key: 'sua_chave_aqui', 
  env: 'development',
  accessKey: 'access_key_workspace',
  secretKey: 'secret_key_workspace'
})


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

Esse erro é salvo no reportfy como tipo events.