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

@seneca/telemetry-newrelic

v0.1.0

Published

Handle incoming messages within other frameworks.

Downloads

7

Readme

Seneca telemetry-newrelic

Seneca telemetry-newrelic is a plugin for Seneca

Capture NewRelic telemetry for Seneca actions.

npm version

build

Coverage Status

Known Vulnerabilities

DeepScan grade

Maintainability

| Voxgig | This open source module is sponsored and supported by Voxgig. |

|---|---|

Description

This is a plugin for integrating Newrelic with Seneca.js

Dependencies

Booting


const  Seneca = require('seneca');

const  newrelicPlugin = require('seneca-telemetry-newrelic');

const  SECRET_NEWRELIC_API_KEY = "SECRET_NEWRELIC_API_KEY";

const  MY_SERVICE_NAME = "MY_SERVICE_NAME";


const  senecaInstance = Seneca()

	.use('promisify')

	.use(newrelicPlugin, {

	// Enable Tracing

	tracing: {

	enabled:  true,

	accountApiKey:  SECRET_NEWRELIC_API_KEY,

	serviceName:  MY_SERVICE_NAME,

	},

	// Enable Segments

	segment: {

	enabled:  true,

	},

	// Enable Metrics

	metrics: {

	enabled:  true,

	accountApiKey:  SECRET_NEWRELIC_API_KEY,

	},

	// Enable Events

	events: {

	enabled:  true,

	accountApiKey:  SECRET_NEWRELIC_API_KEY,

	},

});

Events

Send your own custom event data.

Events API should be used to track specific/edge cases, in most of cases, try to use Metrics.

Usage


// The base pattern is: "plugin:newrelic,api:event"

// All res objects follow the same pattern: { err?: Error, statusCode?: number, body?;

// You can fulfill the attributes object, and then use it inside Newrelic to query and aggregate your data.

seneca.act('plugin:newrelic,api:event,somethingHappened,attributes:{isOK:false,error:"System Crash - CODE 784"}', (err, res) => {

// err is null

// handle res here (Check for errors, log data, et cetera)

});

Metrics

Send your your own custom dimensional metrics to Newrelic.

The SDK currently supports three types of Metrics: count, gauge, summary. You can read about metrics types here.

Usage


// The base pattern is: "plugin:newrelic,api:metric"

// You can also pass a custom object in the attributes field;

// All res objects follow the same pattern: { err?: Error, statusCode?: number, body?;

Gauge example:


// value must be typeof number

seneca.act("plugin:newrelic,api:metric,type:gauge,value:2,name:custom.seneca.counter,attributes:{'user.name': 'Vitor', age: 26}", (err, res) => {

// err is null

// handle res here (Check for errors, log data, et cetera)

})

Summary Example:


// value must be of typeof { count?: number, sum?: number, min?: number, max?: number}

seneca.act('plugin:newrelic,api:metric,type:summary,name:sumOfSomething,value:{sum: 1}');

Count Example:


// value must be typeof number

seneca.act('plugin:newrelic,api:metric,type:count,name:custom.counter,value:10');

Tracing

After enabling it, Seneca will start sending distributed tracing data to Newrelic.

In the context of Seneca, in your application when a action is dispatched, Seneca will trace it down until it finishes/arrives, then you send this distributed aggregated data to Newrelic.

In the Newrelic UI you will be able to see the performance of your seneca actions.

Segment

TODO