OpenTelemetry Mysql2 Instrumentation

The OpenTelemetry Mysql2 Ruby gem is a community maintained instrumentation for Mysql2.

How do I get started?

Install the gem using:

gem install opentelemetry-instrumentation-mysql2

Or, if you use bundler, include opentelemetry-instrumentation-mysql2 in your Gemfile.


To use the instrumentation, call use with the name of the instrumentation:

OpenTelemetry::SDK.configure do |c|
  c.use 'OpenTelemetry::Instrumentation::Mysql2'

Alternatively, you can also call use_all to install all the available instrumentation.

OpenTelemetry::SDK.configure do |c|

The mysql2 instrumentation allows the user to supply additional attributes via the with_attributes method. This makes it possible to supply additional attributes on mysql2 spans. Attributes supplied in with_attributes supersede those automatically generated within mysql2's automatic instrumentation. If you supply a db.statement attribute in with_attributes, this library's :db_statement configuration will not be applied.

require 'opentelemetry/instrumentation/mysql2'

client = => "localhost", :username => "root")
OpenTelemetry::Instrumentation::Mysql2.with_attributes('pizzatoppings' => 'mushrooms') do
  client.query("SELECT 1")

Configuration options

OpenTelemetry::SDK.configure do |c|
  c.use 'OpenTelemetry::Instrumentation::Mysql2', {
    # The obfuscation of SQL in the db.statement attribute is enabled by default.
    # To disable, set db_statement to :include; to omit the query completely, set db_statement to :omit
    db_statement: :include,


An example of usage can be seen in example/mysql2.rb.

How can I get involved?

The opentelemetry-instrumentation-mysql2 gem source is on github, along with related gems including opentelemetry-api and opentelemetry-sdk.

The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us on our gitter channel or attending our weekly meeting. See the meeting calendar for dates and times. For more information on this and other language SIGs, see the OpenTelemetry community page.


The opentelemetry-instrumentation-mysql2 gem is distributed under the Apache 2.0 license. See LICENSE for more information.