npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@reportfy/apm

v1.9.1

Published

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

Downloads

2,134

Readme

@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.

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.