Class SqlClientAttributesExtractor<REQUEST,RESPONSE>

java.lang.Object
io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor<REQUEST,RESPONSE>
All Implemented Interfaces:
io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor<REQUEST,RESPONSE>, io.opentelemetry.instrumentation.api.internal.SpanKeyProvider

public final class SqlClientAttributesExtractor<REQUEST,RESPONSE> extends Object implements io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor<REQUEST,RESPONSE>, io.opentelemetry.instrumentation.api.internal.SpanKeyProvider
Extractor of database attributes. This class is designed with SQL (or SQL-like) database clients in mind.

It sets the same set of attributes as DbClientAttributesExtractor plus an additional db.sql.table attribute. The raw SQL statements returned by the SqlClientAttributesGetter.getRawQueryTexts(Object) method are sanitized before use, all statement parameters are removed.

  • Method Details

    • create

      public static <REQUEST, RESPONSE> io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor<REQUEST,RESPONSE> create(SqlClientAttributesGetter<REQUEST,RESPONSE> getter)
      Creates the SQL client attributes extractor with default configuration.
    • builder

      public static <REQUEST, RESPONSE> SqlClientAttributesExtractorBuilder<REQUEST,RESPONSE> builder(SqlClientAttributesGetter<REQUEST,RESPONSE> getter)
      Returns a new SqlClientAttributesExtractorBuilder that can be used to configure the SQL client attributes extractor.
    • onStart

      public void onStart(io.opentelemetry.api.common.AttributesBuilder attributes, io.opentelemetry.context.Context parentContext, REQUEST request)
      Specified by:
      onStart in interface io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor<REQUEST,RESPONSE>
    • onEnd

      public void onEnd(io.opentelemetry.api.common.AttributesBuilder attributes, io.opentelemetry.context.Context context, REQUEST request, @Nullable RESPONSE response, @Nullable Throwable error)
      Specified by:
      onEnd in interface io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor<REQUEST,RESPONSE>
    • internalGetSpanKey

      public io.opentelemetry.instrumentation.api.internal.SpanKey internalGetSpanKey()
      This method is internal and is hence not for public use. Its API is unstable and can change at any time.
      Specified by:
      internalGetSpanKey in interface io.opentelemetry.instrumentation.api.internal.SpanKeyProvider