keymetrics / pm2-io-apm

PM2.io APM for Node.JS
Apache License 2.0
148 stars 40 forks source link

Can't use io.meter() with anything other than default options #266

Open nicholas-ochoa opened 4 years ago

nicholas-ochoa commented 4 years ago

It looks like the type definition for the io.meter() function is Metric (utils/metrics.d.ts) which does not have the properties needed for the io.meter() config object such as timeframe. As a result, this code doesn't work as expected:

import io from '@pm2/io';

export const metrics = {
  eventsPerHour: io.meter({
    name: 'events/hour',
    timeframe: 3600,
  }),
};

I'm getting a type error because the timeframe type doesn't exist on Metric.

[tsl] ERROR in F:\git\****\src\utils\metrics.ts(41,7)
      TS2345: Argument of type '{ name: string; timeframe: number; }' is not assignable to parameter of type 'Metric'.
  Object literal may only specify known properties, and 'timeframe' does not exist in type 'Metric'.

The documentation for io.meter() gives the following example however:

var meter = io.meter({
  name      : 'req/min',
  samples   : 1,
  timeframe : 60
})
nicholas-ochoa commented 4 years ago

Any update?

emaciel10 commented 4 years ago

Having the same issue. Have there been any updates here?

nightwolfz commented 4 years ago

This needs an update