Configuración avanzada

En esta guía, se enfocan las opciones de configuración avanzadas para las funciones implementadas con el complemento de Firebase Telemetry. Puedes encontrar descripciones detalladas de cada opción de configuración en nuestra documentación de referencia de la API de JS.

En esta documentación, se describe cómo ajustar qué telemetría se recopila, con qué frecuencia y desde qué entornos.

Configuración predeterminada

El complemento de Firebase telemetry proporciona opciones predeterminadas listas para usar que te permiten comenzar a usar la función rápidamente. Estos son los valores predeterminados proporcionados:

{
  autoInstrumentation: true,
  autoInstrumentationConfig: {
    '@opentelemetry/instrumentation-dns': { enabled: false },
  }
  disableMetrics: false,
  disableTraces: false,
  disableLoggingInputAndOutput: false,
  forceDevExport: false,
  // 5 minutes
  metricExportIntervalMillis: 300_000,
  // 5 minutes
  metricExportTimeoutMillis: 300_000,
  // See https://js.api.genkit.dev/interfaces/_genkit-ai_google-cloud.GcpTelemetryConfigOptions.html#sampler
  sampler: AlwaysOnSampler()
}

Cómo exportar la telemetría local

Para exportar la telemetría cuando se ejecuta de forma local, configura la opción forceDevExport en true.

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({forceDevExport: true});

Durante el desarrollo y las pruebas, puedes disminuir la latencia ajustando el intervalo de exportación y el tiempo de espera.

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({
  forceDevExport: true,
  metricExportIntervalMillis: 10_000, // 10 seconds
  metricExportTimeoutMillis: 10_000 // 10 seconds
});

Cómo ajustar la instrumentación automática

El complemento de telemetría de Firebase recopilará automáticamente seguimientos y métricas para frameworks populares con la instrumentación sin código de OpenTelemetry.

Puedes encontrar una lista completa de las instrumentaciones disponibles en la documentación de auto-instrumentations-node.

Para inhabilitar o habilitar de forma selectiva las instrumentaciones aptas para la instrumentación automática, actualiza el campo autoInstrumentationConfig:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({
  autoInstrumentationConfig: {
    '@opentelemetry/instrumentation-fs': { enabled: false },
    '@opentelemetry/instrumentation-dns': { enabled: false },
    '@opentelemetry/instrumentation-net': { enabled: false },
  }
});

Inhabilita la telemetría

La supervisión de Firebase Genkit aprovecha una combinación de registro, seguimiento y métricas para capturar una vista integral de tus interacciones con Genkit. Sin embargo, también puedes inhabilitar cada uno de estos elementos de forma independiente si es necesario.

Inhabilita el registro de entrada y salida

De forma predeterminada, el complemento de telemetría de Firebase capturará entradas y salidas para cada función o paso de Genkit.

Para ayudarte a controlar cómo se almacenan los datos del cliente, puedes inhabilitar el registro de entrada y salida. Para ello, agrega lo siguiente a tu configuración:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({
  disableLoggingInputAndOutput: true
});

Si configuras esta opción, los atributos de entrada y salida se ocultarán en el visor de seguimiento de Firebase Genkit Monitoring y no aparecerán en el registro de Google Cloud.

Inhabilita métricas

Para inhabilitar la recopilación de métricas, agrega lo siguiente a tu configuración:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({
  disableMetrics: true
});

Si configuras esta opción, ya no verás las métricas de estabilidad en el panel de supervisión de Genkit de Firebase, y no estarán disponibles en las métricas de Google Cloud.

Inhabilita los seguimientos

Para inhabilitar la recopilación de registros, agrega lo siguiente a tu configuración:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry({
  disableTraces: true
});

Si configuras esta opción, ya no verás seguimientos en la página de la función de supervisión de Genkit de Firebase, no tendrás acceso al visor de seguimiento ni verás los seguimientos presentes en el seguimiento de Google Cloud.