
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@ovotech/influx-metrics-tracker
Advanced tools
Track metrics and store them in an Influx database, with secondary logging if Influx is unavailable
Track metrics and store them in an Influx database, with secondary logging if Influx is unavailable or invalid input is provided.
yarn add @ovotech/influx-metrics-tracker
import { createInfluxConnection, MetricsTracker } from '@ovotech/influx-metrics-tracker';
import { Logger } from '@ovotech/winston-logger';
import { InfluxDB, ISingleHostConfig } from 'influx';
import * as winston from 'winston';
// Define a specific tracker
class PerformanceMetricsTracker extends MetricsTracker {
private static queryTimeMeasurementName = 'query-time';
async trackQueryTime(timeMs: number, queryName: string) {
await this.trackPoint(
PerformanceMetricsTracker.queryTimeMeasurementName,
{ queryName },
{ timeMs: Math.round(timeMs) },
);
}
}
// Create Logger and Influx instances
const winstonLogger = winston.createLogger(...);
const logger = new Logger(winstonLogger, { traceToken: req.headers['X-Trace-Token'] });
const influx = createInfluxConnection(process.env);
// Create the tracker
const metricsMeta = {
extraTagName: 'some-value',
};
const tracker = new PerformanceMetricsTracker(influx, logger, metricsMeta);
// Track a point
await tracker.trackQueryTime(12.34, 'myFirstQuery')
As well as a base class that allows you to define custom trackers, there are pre-defined trackers for common operations. These allow services to use a common interface and not re-implement the same functionality.
ExternalRequestMetricsTracker - track information about calling other servicesKafkaMetricsTracker - track actions around the lifecycle of Kafka eventsResponseMetricsTracker - track information about responses from an APIThen you can run the tests with:
yarn test
Style is maintained with prettier and tslint
yarn lint
Deployment is preferment by lerna automatically on merge / push to master, but you'll need to bump the package version numbers yourself. Only updated packages with newer versions will be pushed to the npm registry.
Have a bug? File an issue with a simple example that reproduces this so we can take a look & confirm.
Want to make a change? Submit a PR, explain why it's useful, and make sure you've updated the docs (this file) and the tests (see test folder).
This project is licensed under Apache 2 - see the LICENSE file for details
FAQs
Track metrics and store them in an Influx database, with secondary logging if Influx is unavailable
We found that @ovotech/influx-metrics-tracker demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 354 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.