What is @opentelemetry/instrumentation-memcached?
@opentelemetry/instrumentation-memcached is an OpenTelemetry instrumentation library for Memcached. It allows you to automatically collect and report metrics and traces for Memcached operations, helping you monitor and debug your Memcached usage in a distributed system.
What are @opentelemetry/instrumentation-memcached's main functionalities?
Automatic Tracing
This feature allows you to automatically trace all Memcached operations. The code sample shows how to set up the NodeTracerProvider and register the Memcached instrumentation.
const { NodeTracerProvider } = require('@opentelemetry/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { MemcachedInstrumentation } = require('@opentelemetry/instrumentation-memcached');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [
new MemcachedInstrumentation(),
],
});
Custom Configuration
This feature allows you to customize the instrumentation by adding hooks for requests and responses. The code sample demonstrates how to set custom attributes on spans for Memcached commands and responses.
const { MemcachedInstrumentation } = require('@opentelemetry/instrumentation-memcached');
const memcachedInstrumentation = new MemcachedInstrumentation({
requestHook: (span, requestInfo) => {
span.setAttribute('memcached.command', requestInfo.command);
},
responseHook: (span, responseInfo) => {
span.setAttribute('memcached.response', responseInfo.response);
}
});
Other packages similar to @opentelemetry/instrumentation-memcached
@opentelemetry/instrumentation-redis
@opentelemetry/instrumentation-redis is a similar package for Redis. It provides automatic tracing and metrics collection for Redis operations. Like @opentelemetry/instrumentation-memcached, it helps in monitoring and debugging Redis usage in a distributed system.
OpenTelemetry Memcached Instrumentation for Node.js
This module provides automatic instrumentation for the memcached@>=2.2.0
module, which may be loaded using the @opentelemetry/sdk-trace-node
package and is included in the @opentelemetry/auto-instrumentations-node
bundle.
If total installation size is not constrained, it is recommended to use the @opentelemetry/auto-instrumentations-node
bundle with @opentelemetry/sdk-node for the most seamless instrumentation experience.
Compatible with OpenTelemetry JS API and SDK 1.0+
.
Installation
npm install --save @opentelemetry/instrumentation-memcached
Supported Versions
Usage
OpenTelemetry Memcached Instrumentation allows the user to automatically collect trace data and export them to the backend of choice, to give observability to distributed systems when working with memcached.
To load a specific instrumentation (memcached in this case), specify it in the registerInstrumentations' configuration
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { MemcachedInstrumentation } = require('@opentelemetry/instrumentation-memcached');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [
new MemcachedInstrumentation({
enhancedDatabaseReporting: false,
}),
],
});
Configuration Options
Option | Type | Example | Description |
---|
enhancedDatabaseReporting | boolean | false | Include full command statement in the span - leaks potentially sensitive information to your spans. Defaults to false . |
Semantic Conventions
This package uses @opentelemetry/semantic-conventions
version 1.22+
, which implements Semantic Convention Version 1.7.0
Attributes collected:
Attribute | Short Description |
---|
db.operation | The name of the operation being executed. |
db.statement | The database statement being executed. |
db.system | An identifier for the database management system (DBMS) product being used. |
net.peer.name | Remote hostname or similar. |
net.peer.port | Remote port number. |
Useful links
License
Apache 2.0 - See LICENSE for more information.