Local observability and metrics
Genkit provides a robust set of built-in observability features, including tracing and metrics collection powered by OpenTelemetry. For local observability, such as during the development phase, the Genkit Developer UI provides detailed trace viewing and debugging capabilities. For production observability, we provide Genkit Monitoring in the Firebase console via the Firebase plugin. Alternatively, you can export your OpenTelemetry data to the observability tooling of your choice.
Tracing & metrics
Section titled “Tracing & metrics”Genkit automatically collects traces and metrics without requiring explicit configuration. Genkit stores the traces and the Developer UI displays them, so you can analyze a flow step-by-step with its inputs, outputs, and timing.
Metrics travel a separate path. Genkit records metric families for feature,
flow, action, generate, and tool activity, including genkit/flow/latency and
the token counters genkit/ai/generate/input/tokens and
genkit/ai/generate/output/tokens. The full table is in
Telemetry collection. The Developer
UI does not display metrics: they only leave the process once an exporting
plugin such as the Firebase plugin is installed. In production, Genkit can
export both traces and metrics to Firebase Genkit Monitoring for further
analysis.
Log and export events
Section titled “Log and export events”Genkit Python uses structlog for logging. When the observability plugin is configured, logs automatically include trace context for correlation with your observability backend.
import structlog
logger = structlog.get_logger()
@ai.flow()async def my_flow(topic: str): logger.info('Starting flow', topic=topic) # ... flow logic