Class TelemetryConfig

java.lang.Object
com.google.genkit.core.telemetry.TelemetryConfig

public final class TelemetryConfig extends Object
Central configuration for Genkit telemetry.

This class provides the single entry point for telemetry plugins (like Firebase) to configure both tracing and metrics exporters.

Example usage by a telemetry plugin:


 // Register span processor for traces
 SpanProcessor spanProcessor = BatchSpanProcessor.builder(traceExporter).build();
 TelemetryConfig.registerSpanProcessor(spanProcessor);
 
 // Register meter provider for metrics
 SdkMeterProvider meterProvider = SdkMeterProvider.builder()
     .registerMetricReader(...)
     .build();
 TelemetryConfig.setMeterProvider(meterProvider);
 
  • Method Summary

    Modifier and Type
    Method
    Description
    static io.opentelemetry.api.metrics.Meter
    getMeter(String instrumentationScopeName)
    Gets a Meter for recording metrics.
    static boolean
    Checks if a custom MeterProvider has been configured.
    static void
    registerSpanProcessor(io.opentelemetry.sdk.trace.SpanProcessor processor)
    Registers a SpanProcessor for exporting traces.
    static void
    Resets the configuration.
    static void
    setMeterProvider(io.opentelemetry.api.metrics.MeterProvider provider)
    Sets the MeterProvider to be used by Genkit metrics classes.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • registerSpanProcessor

      public static void registerSpanProcessor(io.opentelemetry.sdk.trace.SpanProcessor processor)
      Registers a SpanProcessor for exporting traces.

      This allows telemetry plugins to add their own exporters to send traces to external services like Google Cloud Trace. Multiple span processors can be registered.

      Parameters:
      processor - the span processor to register
    • setMeterProvider

      public static void setMeterProvider(io.opentelemetry.api.metrics.MeterProvider provider)
      Sets the MeterProvider to be used by Genkit metrics classes.

      This should be called by telemetry plugins (like Firebase) during initialization, before any metrics are recorded.

      Parameters:
      provider - the MeterProvider to use for metrics
    • getMeter

      public static io.opentelemetry.api.metrics.Meter getMeter(String instrumentationScopeName)
      Gets a Meter for recording metrics.

      If a MeterProvider has been set via setMeterProvider(MeterProvider), it will be used. Otherwise, falls back to GlobalOpenTelemetry.

      Parameters:
      instrumentationScopeName - the name of the instrumentation scope
      Returns:
      a Meter for recording metrics
    • isMeterProviderConfigured

      public static boolean isMeterProviderConfigured()
      Checks if a custom MeterProvider has been configured.
      Returns:
      true if a MeterProvider has been set
    • reset

      public static void reset()
      Resets the configuration. Primarily for testing.