Skip to main content

OpenTelemetry Instrumentation

Instrumentation is the act of adding observability code to an app yourself. The instrumentation can be manual or automatic.

If you’re instrumenting an app, you need to use the OpenTelemetry SDK for your language. You’ll then use the SDK to initialize OpenTelemetry and the API to instrument your code. This will emit telemetry from your app, and any library you installed that also comes with instrumentation.

Supported ORM, Frameworks and Programming Languages

Metis requires the OpenTelemetry span to contain the SQL statement that was executed. The SQL command is used to generate an execution plan, therefore it must contain the values of each SQL parameter.

The Metis OpenTelemetry Collector tested with the following tech stacks. However, anything that integrates with OpenTelemetry and meets the requirements should work out of the box.

We recommend using our documentation as it is clearer and more detailed than the official Open Telemetry documentation. If the ORM you need is not in the list please contact support@metisdata.io.

OpenTelemetry and Prepared Statements

As you can see, Java Hibernate, Python SQLAlchemy and Django are not in the list. These 3 ORM send the SQL Commands as a prepared statements, without their parameters. Therefore the Metis Collector can’t generate the execution plan.

From the user perspective, that means the collector can still show which SQL commands were generated by each REST command. But it can’t provide query insights since there is no execution plan.