npm.io
0.66.0 • Published 1 month ago

@opentelemetry/instrumentation-cassandra-driver

Licence
Apache-2.0
Version
0.66.0
Deps
2
Size
56 kB
Vulns
0
Weekly
0
Stars
916

OpenTelemetry instrumentation for cassandra-driver

NPM Published Version Apache License

This module provides automatic instrumentation for the injection of trace context to cassandra-driver.

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-cassandra-driver

Supported Versions

Usage

const { NodeSDK } = require('@opentelemetry/sdk-node');
const { CassandraDriverInstrumentation } = require('@opentelemetry/instrumentation-cassandra-driver');

const sdk = new NodeSDK({
  instrumentations: [
    new CassandraDriverInstrumentation(),
  ],
});
sdk.start();
process.once('beforeExit', async () => { await sdk.shutdown(); });

const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ ... });
await client.execute('select * from foo');
Instrumentation options
Option Type Default Description
enhancedDatabaseReporting boolean false Whether to include database queries with spans. These can contain sensitive information when using unescaped parameters - i.e. insert into persons (name) values ('Bob') instead of insert into persons (name) values (?).
responseHook CassandraDriverResponseCustomAttributeFunction undefined Hook for adding custom attributes before response is handled
maxQueryLength number 65536 If enhancedDatabaseReporting is enabled, limits the attached query strings to this length.

Semantic Conventions

This instrumentation creates spans with attributes from the stable OpenTelemetry semantic conventions for database client calls.

The instrumentation-cassandra-driver versions 0.65.0 and later emit the stable v1.33.0+ semantic conventions.

Attribute Description
db.system.name Database system identifier (cassandra).
db.query.text The database query being executed. Only set when enhancedDatabaseReporting is enabled.
db.namespace The keyspace being accessed.
server.address Remote hostname or similar.
server.port Remote port number.

License

Apache 2.0 - See LICENSE for more information.

Keywords