Class MicrometerTracingAdapter

java.lang.Object
org.springframework.data.redis.connection.lettuce.observability.MicrometerTracingAdapter
All Implemented Interfaces:
io.lettuce.core.tracing.Tracing

public class MicrometerTracingAdapter extends Object implements io.lettuce.core.tracing.Tracing
Tracing adapter using Micrometer's Observation. This adapter integrates with Micrometer to propagate observations into timers, distributed traces and any other registered handlers. Observations include a set of tags capturing Redis runtime information.

Capturing full statements

This adapter can capture full statements when enabling includeCommandArgsInSpanTags. You should carefully consider the impact of this setting as all command arguments will be captured in traces including these that may contain sensitive details.
Since:
3.0
Author:
Mark Paluch
  • Constructor Details

    • MicrometerTracingAdapter

      public MicrometerTracingAdapter(io.micrometer.observation.ObservationRegistry observationRegistry, String serviceName)
      Create a new MicrometerTracingAdapter instance.
      Parameters:
      observationRegistry - must not be null.
      serviceName - service name to be used.
    • MicrometerTracingAdapter

      public MicrometerTracingAdapter(io.micrometer.observation.ObservationRegistry observationRegistry, String serviceName, boolean includeCommandArgsInSpanTags)
      Create a new MicrometerTracingAdapter instance.
      Parameters:
      observationRegistry - must not be null.
      serviceName - service name to be used.
      includeCommandArgsInSpanTags - whether to attach the full command into the trace. Use this flag with caution as sensitive arguments will be captured in the observation spans and metric tags.
  • Method Details

    • getTracerProvider

      public io.lettuce.core.tracing.TracerProvider getTracerProvider()
      Specified by:
      getTracerProvider in interface io.lettuce.core.tracing.Tracing
    • initialTraceContextProvider

      public io.lettuce.core.tracing.TraceContextProvider initialTraceContextProvider()
      Specified by:
      initialTraceContextProvider in interface io.lettuce.core.tracing.Tracing
    • isEnabled

      public boolean isEnabled()
      Specified by:
      isEnabled in interface io.lettuce.core.tracing.Tracing
    • includeCommandArgsInSpanTags

      public boolean includeCommandArgsInSpanTags()
      Specified by:
      includeCommandArgsInSpanTags in interface io.lettuce.core.tracing.Tracing
    • createEndpoint

      public io.lettuce.core.tracing.Tracing.Endpoint createEndpoint(SocketAddress socketAddress)
      Specified by:
      createEndpoint in interface io.lettuce.core.tracing.Tracing