
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@opentelemetry/host-metrics
Advanced tools
@opentelemetry/host-metrics is a package that provides metrics related to the host system, such as CPU and memory usage. It is part of the OpenTelemetry project, which is a set of APIs, libraries, agents, and instrumentation to provide observability for cloud-native software.
Collect CPU Usage Metrics
This feature allows you to collect CPU usage metrics from the host system. The code sample demonstrates how to initialize the HostMetrics class and start collecting metrics using a MeterProvider.
const { HostMetrics } = require('@opentelemetry/host-metrics');
const { MeterProvider } = require('@opentelemetry/sdk-metrics-base');
const meterProvider = new MeterProvider();
const hostMetrics = new HostMetrics({ meterProvider });
hostMetrics.start();
// The metrics will be collected and can be exported using an exporter.
Collect Memory Usage Metrics
This feature allows you to collect memory usage metrics from the host system. The code sample shows how to set up the HostMetrics to start collecting memory metrics using a MeterProvider.
const { HostMetrics } = require('@opentelemetry/host-metrics');
const { MeterProvider } = require('@opentelemetry/sdk-metrics-base');
const meterProvider = new MeterProvider();
const hostMetrics = new HostMetrics({ meterProvider });
hostMetrics.start();
// Memory usage metrics will be collected and can be exported using an exporter.
prom-client is a Prometheus client for Node.js that can be used to collect various metrics, including host metrics. It provides a flexible way to define custom metrics and export them to a Prometheus server. Compared to @opentelemetry/host-metrics, prom-client is more focused on integration with Prometheus and offers a broader range of metric types.
node-os-utils is a utility library for Node.js that provides functions to get system and OS-related metrics, such as CPU, memory, and disk usage. It is simpler and more lightweight compared to @opentelemetry/host-metrics, but it does not integrate with the OpenTelemetry ecosystem for observability.
This module provides automatic collection of Host Metrics which includes metrics for:
Compatible with OpenTelemetry JS API and SDK 1.0+
.
npm install --save @opentelemetry/host-metrics
const { MeterProvider } = require('@opentelemetry/sdk-metrics');
const { HostMetrics } = require('@opentelemetry/host-metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const exporter = new PrometheusExporter(
{
startServer: true
}, () => {
console.log('prometheus scrape endpoint: http://localhost:9464/metrics')
}
);
const meterProvider = new MeterProvider({
readers: [reader],
});
const hostMetrics = new HostMetrics({ meterProvider });
hostMetrics.start();
This package uses Semantic Conventions Version 1.25.0.
As for now the Semantic Conventions are bundled in this package but eventually will be imported from @opentelemetry/semantic-conventions
package when it is updated to latest version.
Ref: opentelemetry-js/issues/4235
Metrics collected:
Metric | Short Description |
---|---|
system.cpu.time | Seconds each logical CPU spent on each mode |
system.cpu.utilization | CPU usage time (0-1) |
system.memory.usage | Reports memory in use by state |
system.memory.utilization | Memory usage (0-1) |
system.network.dropped | Count of packets that are dropped |
system.network.errors | Count of network errors detected |
system.network.io | Network flow direction |
process.cpu.time | Total CPU seconds |
process.cpu.utilization | Difference in process.cpu.time since the last measurement |
process.memory.usage | The amount of physical memory in use |
Attributes collected:
Metric | Short Description |
---|---|
system.cpu.logical_number | The logical CPU number |
system.cpu.state | The state of the CPU |
system.memory.state | The memory state |
system.device | The device identifier |
network.io.direction | The network IO operation direction |
system.network.state | The network state |
process.cpu.state | The CPU state |
APACHE 2.0 - See LICENSE for more information.
FAQs
OpenTelemetry Host Metrics for Node.js
The npm package @opentelemetry/host-metrics receives a total of 137,249 weekly downloads. As such, @opentelemetry/host-metrics popularity was classified as popular.
We found that @opentelemetry/host-metrics demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.