Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@opentelemetry/instrumentation-runtime-node

Package Overview
Dependencies
Maintainers
3
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@opentelemetry/instrumentation-runtime-node

OpenTelemetry Node.js Performance measurement API automatic instrumentation package

  • 0.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
44K
increased by7.46%
Maintainers
3
Weekly downloads
 
Created
Source

OpenTelemetry Node.js Runtime Metrics Instrumentation

NPM Published Version Apache License

This module provides automatic metric instrumentation that exposes measurements from the Performance measurement APIs (i.e. perf_hooks). While currently it is limited to metrics, it may be modified to produce other signals in the future.

Example

npm install --save @opentelemetry/sdk-node @opentelemetry/exporter-prometheus
npm install --save @opentelemetry/instrumentation-runtime-node
import { NodeSDK } from '@opentelemetry/sdk-node';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
import { PerfHooksInstrumentation } from '@opentelemetry/instrumentation-runtime-node';

const prometheusExporter = new PrometheusExporter({
  port: 9464,
  startServer: true
});

const sdk = new NodeSDK({
  metricReader: prometheusExporter,
  instrumentations: [new PerfHooksInstrumentation({
    eventLoopUtilizationMeasurementInterval: 5000,
  })],
});

sdk.start()

NodeSDK is the full OpenTelemetry SDK for Node.js that is a layer of abstraction on top of the @opentelemetry/sdk-metrics and @opentelemetry/sdk-trace-* packages. By specifying metricReader, it will initialize the metrics SDK and creates a MeterProvider. @opentelemetry/exporter-prometheus will output metrics collected by registered instrumentation on a /metrics endpoint.

Go to localhost:9464/metrics, and you should see:

# HELP nodejs_performance_event_loop_utilization Event loop utilization
# UNIT nodejs_performance_event_loop_utilization 1
# TYPE nodejs_performance_event_loop_utilization gauge
nodejs_performance_event_loop_utilization 0.010140079547955264

Metrics will only be exported after it has collected two ELU readings (at least approximately PerfHooksInstrumentationConfig.eventLoopUtilizationMeasurementInterval milliseconds after initialization). Otherwise, you may see:

# no registered metrics

Options

PerfHooksInstrumentation's constructor accepts the following options:

nametypeunitdefaultdescription
eventLoopUtilizationMeasurementIntervalintmillisecond5000The approximate number of milliseconds for which to calculate event loop utilization averages. A larger value will result in more accurate averages at the expense of less granular data. Should be set to below the scrape interval of your metrics collector to avoid duplicated data points.

Supported Node.js versions

v14.10.0+

License

Apache 2.0 - See LICENSE for more information.

Keywords

FAQs

Package last updated on 29 Feb 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc