Package com.google.genkit.core.telemetry
Class TelemetryConfig
java.lang.Object
com.google.genkit.core.telemetry.TelemetryConfig
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 TypeMethodDescriptionstatic io.opentelemetry.api.metrics.MeterGets a Meter for recording metrics.static booleanChecks if a custom MeterProvider has been configured.static voidregisterSpanProcessor(io.opentelemetry.sdk.trace.SpanProcessor processor) Registers a SpanProcessor for exporting traces.static voidreset()Resets the configuration.static voidsetMeterProvider(io.opentelemetry.api.metrics.MeterProvider provider) Sets the MeterProvider to be used by Genkit metrics classes.
-
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
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.
-