Docs
고급 기능
원격 측정

OpenTelemetry를 통한 관찰 가능성

Gemini CLI에서 OpenTelemetry를 활성화하고 설정하는 방법을 알아보세요.

주요 이점

  • 🔍 사용량 분석: 팀 전체의 상호 작용 패턴 및 기능 채택 이해
  • ⚡ 성능 모니터링: 응답 시간, 토큰 소비 및 리소스 활용률 추적
  • 🐛 실시간 디버깅: 병목 현상, 실패 및 오류 패턴 발생 즉시 식별
  • 📊 워크플로 최적화: 구성 및 프로세스 개선을 위한 정보에 입각한 의사 결정
  • 🏢 엔터프라이즈 거버넌스: 팀 간 사용량 모니터링, 비용 추적, 규정 준수 보장 및 기존 모니터링 인프라와의 통합

OpenTelemetry 통합

공급업체 중립적인 산업 표준 관찰 가능성 프레임워크인 **OpenTelemetry (opens in a new tab)**를 기반으로 구축된 Gemini CLI의 관찰 가능성 시스템은 다음을 제공합니다:

  • 범용 호환성: 모든 OpenTelemetry 백엔드(Google Cloud, Jaeger, Prometheus, Datadog 등)로 내보내기
  • 표준화된 데이터: 툴체인 전반에서 일관된 형식 및 수집 방법 사용
  • 미래 지향적 통합: 기존 및 미래의 관찰 가능성 인프라와 연결
  • 공급업체 종속성 없음: 계측을 변경하지 않고 백엔드 간 전환

구성

모든 텔레메트리 동작은 .gemini/settings.json 파일을 통해 제어됩니다. 환경 변수를 사용하여 파일의 설정을 재정의할 수 있습니다.

설정환경 변수설명기본값
enabledGEMINI_TELEMETRY_ENABLED텔레메트리 활성화 또는 비활성화true/falsefalse
targetGEMINI_TELEMETRY_TARGET텔레메트리 데이터를 보낼 위치"gcp"/"local""local"
otlpEndpointGEMINI_TELEMETRY_OTLP_ENDPOINTOTLP 수집기 엔드포인트URL 문자열http://localhost:4317
otlpProtocolGEMINI_TELEMETRY_OTLP_PROTOCOLOTLP 전송 프로토콜"grpc"/"http""grpc"
outfileGEMINI_TELEMETRY_OUTFILE파일에 텔레메트리 저장 (otlpEndpoint 재정의)파일 경로-
logPromptsGEMINI_TELEMETRY_LOG_PROMPTS텔레메트리 로그에 프롬프트 포함true/falsetrue
useCollectorGEMINI_TELEMETRY_USE_COLLECTOR외부 OTLP 수집기 사용 (고급)true/falsefalse
useCliAuthGEMINI_TELEMETRY_USE_CLI_AUTH텔레메트리에 CLI 자격 증명 사용 (GCP 대상 전용)true/falsefalse

부울 환경 변수에 대한 참고 사항: 부울 설정(enabled, logPrompts, useCollector)의 경우 해당 환경 변수를 true 또는 1로 설정하면 기능이 활성화됩니다. 그 외의 값은 기능을 비활성화합니다.

모든 구성 옵션에 대한 자세한 정보는 구성 가이드를 참조하세요.

Google Cloud 텔레메트리

전제 조건

아래 방법 중 하나를 사용하기 전에 다음 단계를 완료하세요:

  1. Google Cloud 프로젝트 ID 설정:

    • 추론과 별도의 프로젝트에서 텔레메트리를 사용하는 경우:
      export OTLP_GOOGLE_CLOUD_PROJECT="your-telemetry-project-id"
    • 추론과 동일한 프로젝트에서 텔레메트리를 사용하는 경우:
      export GOOGLE_CLOUD_PROJECT="your-project-id"
  2. Google Cloud 인증:

    • 사용자 계정을 사용하는 경우:
      gcloud auth application-default login
    • 서비스 계정을 사용하는 경우:
      export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account.json"
  3. 계정 또는 서비스 계정에 다음 IAM 역할이 있는지 확인하세요:

    • Cloud Trace Agent (Cloud Trace 에이전트)
    • Monitoring Metric Writer (모니터링 메트릭 작성자)
    • Logs Writer (로그 작성자)
  4. 필요한 Google Cloud API 활성화 (아직 활성화되지 않은 경우):

    gcloud services enable \
      cloudtrace.googleapis.com \
      monitoring.googleapis.com \
      logging.googleapis.com \
      --project="$OTLP_GOOGLE_CLOUD_PROJECT"

CLI 자격 증명으로 인증하기

기본적으로 Google Cloud용 텔레메트리 수집기는 ADC(애플리케이션 기본 자격 증명)를 사용합니다. 그러나 Gemini CLI에 로그인할 때 사용하는 것과 동일한 OAuth 자격 증명을 사용하도록 구성할 수 있습니다. 이는 ADC가 설정되지 않은 환경에서 유용합니다.

이를 활성화하려면 telemetry 설정에서 useCliAuth 속성을 true로 설정하세요:

{
  "telemetry": {
    "enabled": true,
    "target": "gcp",
    "useCliAuth": true
  }
}

중요:

  • 이 설정은 직접 내보내기 (in-process exporters)를 사용해야 합니다.
  • useCollector: true와 함께 사용할 수 없습니다. 둘 다 활성화하면 텔레메트리가 비활성화되고 오류가 기록됩니다.
  • CLI는 자동으로 자격 증명을 사용하여 Google Cloud Trace, Metrics 및 Logging API에 인증합니다.

직접 내보내기 (권장)

텔레메트리를 Google Cloud 서비스로 직접 보냅니다. 수집기가 필요하지 않습니다.

  1. .gemini/settings.json에서 텔레메트리 활성화:
    {
      "telemetry": {
        "enabled": true,
        "target": "gcp"
      }
    }
  2. Gemini CLI를 실행하고 프롬프트를 보냅니다.
  3. 로그 및 메트릭 보기:

수집기 기반 내보내기 (고급)

사용자 지정 처리, 필터링 또는 라우팅을 위해 OpenTelemetry 수집기를 사용하여 데이터를 Google Cloud로 전달합니다.

  1. .gemini/settings.json 구성:
    {
      "telemetry": {
        "enabled": true,
        "target": "gcp",
        "useCollector": true
      }
    }
  2. 자동화 스크립트 실행:
    npm run telemetry -- --target=gcp
    이 작업은 다음을 수행합니다:
    • Google Cloud로 전달하는 로컬 OTEL 수집기 시작
    • 작업 공간 구성
    • Google Cloud Console에서 추적, 메트릭 및 로그를 볼 수 있는 링크 제공
    • 수집기 로그를 ~/.gemini/tmp/<projectHash>/otel/collector-gcp.log에 저장
    • 종료 시 수집기 중지 (예: Ctrl+C)
  3. Gemini CLI를 실행하고 프롬프트를 보냅니다.
  4. 로그 및 메트릭 보기:

모니터링 대시보드

Gemini CLI는 텔레메트리를 시각화하기 위해 미리 구성된 Google Cloud Monitoring (opens in a new tab) 대시보드를 제공합니다.

이 대시보드는 Google Cloud Monitoring 대시보드 템플릿에서 "Gemini CLI Monitoring"으로 찾을 수 있습니다.

Gemini CLI Monitoring Dashboard Overview

Gemini CLI Monitoring Dashboard Metrics

Gemini CLI Monitoring Dashboard Logs

자세한 내용은 블로그 게시물을 확인하세요: 즉각적인 통찰력: Gemini CLI의 새로운 사전 구성된 모니터링 대시보드 (opens in a new tab).

로컬 텔레메트리

로컬 개발 및 디버깅을 위해 로컬에서 텔레메트리 데이터를 캡처할 수 있습니다:

파일 기반 출력 (권장)

  1. .gemini/settings.json에서 텔레메트리 활성화:
    {
      "telemetry": {
        "enabled": true,
        "target": "local",
        "otlpEndpoint": "",
        "outfile": ".gemini/telemetry.log"
      }
    }
  2. Gemini CLI를 실행하고 프롬프트를 보냅니다.
  3. 지정된 파일(예: .gemini/telemetry.log)에서 로그 및 메트릭을 확인합니다.

수집기 기반 내보내기 (고급)

  1. 자동화 스크립트 실행:
    npm run telemetry -- --target=local
    이 작업은 다음을 수행합니다:
    • Jaeger 및 OTEL 수집기 다운로드 및 시작
    • 로컬 텔레메트리를 위한 작업 공간 구성
    • http://localhost:16686 (opens in a new tab) 에서 Jaeger UI 제공
    • 로그/메트릭을 ~/.gemini/tmp/<projectHash>/otel/collector.log에 저장
    • 종료 시 수집기 중지 (예: Ctrl+C)
  2. Gemini CLI를 실행하고 프롬프트를 보냅니다.
  3. http://localhost:16686 (opens in a new tab) 에서 추적을 확인하고 수집기 로그 파일에서 로그/메트릭을 확인합니다.

로그 및 메트릭

다음 섹션에서는 Gemini CLI에 대해 생성된 로그 및 메트릭의 구조를 설명합니다.

session.id, installation.id, 및 user.email(Google 계정으로 인증된 경우에만 사용 가능)은 모든 로그 및 메트릭에 공통 속성으로 포함됩니다.

로그

로그는 특정 이벤트의 타임스탬프가 있는 기록입니다. Gemini CLI에 대해 다음 이벤트가 기록되며, 범주별로 그룹화됩니다.

세션

시작 구성 및 사용자 프롬프트 제출을 캡처합니다.

  • gemini_cli.config: CLI 구성과 함께 시작 시 한 번 방출됩니다.

    • 속성:
      • model (string)
      • embedding_model (string)
      • sandbox_enabled (boolean)
      • core_tools_enabled (string)
      • approval_mode (string)
      • api_key_enabled (boolean)
      • vertex_ai_enabled (boolean)
      • log_user_prompts_enabled (boolean)
      • file_filtering_respect_git_ignore (boolean)
      • debug_mode (boolean)
      • mcp_servers (string)
      • mcp_servers_count (int)
      • extensions (string)
      • extension_ids (string)
      • extension_count (int)
      • mcp_tools (string, 해당되는 경우)
      • mcp_tools_count (int, 해당되는 경우)
      • output_format ("text", "json", 또는 "stream-json")
  • gemini_cli.user_prompt: 사용자가 프롬프트를 제출할 때 방출됩니다.

    • 속성:
      • prompt_length (int)
      • prompt_id (string)
      • prompt (string; telemetry.logPromptsfalse인 경우 제외됨)
      • auth_type (string)

승인 모드

승인 모드의 변경 및 기간을 추적합니다.

수명 주기
  • approval_mode_switch: 승인 모드가 변경되었습니다.

    • 속성:
      • from_mode (string)
      • to_mode (string)
  • approval_mode_duration: 승인 모드에서 보낸 시간입니다.

    • 속성:
      • mode (string)
      • duration_ms (int)
실행

이 이벤트는 계획 모드와 같은 승인 모드의 실행을 추적합니다.

  • plan_execution: 계획이 실행되었고 세션이 계획 모드에서 활성 실행으로 전환되었습니다.
    • 속성:
      • approval_mode (string)

도구

도구 실행, 출력 잘림 및 편집 동작을 캡처합니다.

  • gemini_cli.tool_call: 각 도구(함수) 호출에 대해 방출됩니다.

    • 속성:
      • function_name
      • function_args
      • duration_ms
      • success (boolean)
      • decision ("accept", "reject", "auto_accept", 또는 "modify", 해당되는 경우)
      • error (해당되는 경우)
      • error_type (해당되는 경우)
      • prompt_id (string)
      • tool_type ("native" 또는 "mcp")
      • mcp_server_name (string, 해당되는 경우)
      • extension_name (string, 해당되는 경우)
      • extension_id (string, 해당되는 경우)
      • content_length (int, 해당되는 경우)
      • metadata (해당되는 경우)
  • gemini_cli.tool_output_truncated: 도구 호출의 출력이 잘렸습니다.

    • 속성:
      • tool_name (string)
      • original_content_length (int)
      • truncated_content_length (int)
      • threshold (int)
      • lines (int)
      • prompt_id (string)
  • gemini_cli.edit_strategy: 선택된 편집 전략입니다.

    • 속성:
      • strategy (string)
  • gemini_cli.edit_correction: 편집 수정 결과입니다.

    • 속성:
      • correction ("success" | "failure")
  • gen_ai.client.inference.operation.details: 이 이벤트는 OpenTelemetry GenAI 이벤트 의미 규칙 (opens in a new tab)에 맞춰 GenAI 작업에 대한 자세한 정보를 제공합니다.

    • 속성:
      • gen_ai.request.model (string)
      • gen_ai.provider.name (string)
      • gen_ai.operation.name (string)
      • gen_ai.input.messages (json string)
      • gen_ai.output.messages (json string)
      • gen_ai.response.finish_reasons (array of strings)
      • gen_ai.usage.input_tokens (int)
      • gen_ai.usage.output_tokens (int)
      • gen_ai.request.temperature (float)
      • gen_ai.request.top_p (float)
      • gen_ai.request.top_k (int)
      • gen_ai.request.max_tokens (int)
      • gen_ai.system_instructions (json string)
      • server.address (string)
      • server.port (int)

파일

도구가 수행한 파일 작업을 추적합니다.

  • gemini_cli.file_operation: 각 파일 작업에 대해 방출됩니다.
    • 속성:
      • tool_name (string)
      • operation ("create" | "read" | "update")
      • lines (int, optional)
      • mimetype (string, optional)
      • extension (string, optional)
      • programming_language (string, optional)

API

Gemini API 요청, 응답 및 오류를 캡처합니다.

  • gemini_cli.api_request: Gemini API로 전송된 요청입니다.

    • 속성:
      • model (string)
      • prompt_id (string)
      • request_text (string, optional)
  • gemini_cli.api_response: Gemini API로부터 받은 응답입니다.

    • 속성:
      • model (string)
      • status_code (int|string)
      • duration_ms (int)
      • input_token_count (int)
      • output_token_count (int)
      • cached_content_token_count (int)
      • thoughts_token_count (int)
      • tool_token_count (int)
      • total_token_count (int)
      • response_text (string, optional)
      • prompt_id (string)
      • auth_type (string)
      • finish_reasons (array of strings)
  • gemini_cli.api_error: API 요청이 실패했습니다.

    • 속성:
      • model (string)
      • error (string)
      • error_type (string)
      • status_code (int|string)
      • duration_ms (int)
      • prompt_id (string)
      • auth_type (string)
  • gemini_cli.malformed_json_response: generateJson 응답을 파싱할 수 없습니다.

    • 속성:
      • model (string)

모델 라우팅

  • gemini_cli.slash_command: 슬래시 명령이 실행되었습니다.

    • 속성:
      • command (string)
      • subcommand (string, optional)
      • status ("success" | "error")
  • gemini_cli.slash_command.model: 슬래시 명령을 통해 모델이 선택되었습니다.

    • 속성:
      • model_name (string)
  • gemini_cli.model_routing: 모델 라우터가 결정을 내렸습니다.

    • 속성:
      • decision_model (string)
      • decision_source (string)
      • routing_latency_ms (int)
      • reasoning (string, optional)
      • failed (boolean)
      • error_message (string, optional)

채팅 및 스트리밍

  • gemini_cli.chat_compression: 채팅 컨텍스트가 압축되었습니다.

    • 속성:
      • tokens_before (int)
      • tokens_after (int)
  • gemini_cli.chat.invalid_chunk: 스트림에서 잘못된 청크를 받았습니다.

    • 속성:
      • error.message (string, optional)
  • gemini_cli.chat.content_retry: 콘텐츠 오류로 인해 재시도가 트리거되었습니다.

    • 속성:
      • attempt_number (int)
      • error_type (string)
      • retry_delay_ms (int)
      • model (string)
  • gemini_cli.chat.content_retry_failure: 모든 콘텐츠 재시도가 실패했습니다.

    • 속성:
      • total_attempts (int)
      • final_error_type (string)
      • total_duration_ms (int, optional)
      • model (string)
  • gemini_cli.conversation_finished: 대화 세션이 종료되었습니다.

    • 속성:
      • approvalMode (string)
      • turnCount (int)
  • gemini_cli.next_speaker_check: 다음 화자 결정.

    • 속성:
      • prompt_id (string)
      • finish_reason (string)
      • result (string)

복원력

모델 및 네트워크 작업에 대한 대체 메커니즘을 기록합니다.

  • gemini_cli.flash_fallback: 대체 방편으로 flash 모델로 전환했습니다.

    • 속성:
      • auth_type (string)
  • gemini_cli.ripgrep_fallback: 파일 검색을 위한 대체 방편으로 grep으로 전환했습니다.

    • 속성:
      • error (string, optional)
  • gemini_cli.web_fetch_fallback_attempt: 웹 가져오기(web-fetch) 대체 방편을 시도했습니다.

    • 속성:
      • reason ("private_ip" | "primary_failed")

확장

확장 수명 주기 및 설정 변경을 추적합니다.

  • gemini_cli.extension_install: 확장이 설치되었습니다.

    • 속성:
      • extension_name (string)
      • extension_version (string)
      • extension_source (string)
      • status (string)
  • gemini_cli.extension_uninstall: 확장이 제거되었습니다.

    • 속성:
      • extension_name (string)
      • status (string)
  • gemini_cli.extension_enable: 확장이 활성화되었습니다.

    • 속성:
      • extension_name (string)
      • setting_scope (string)
  • gemini_cli.extension_disable: 확장이 비활성화되었습니다.

    • 속성:
      • extension_name (string)
      • setting_scope (string)
  • gemini_cli.extension_update: 확장이 업데이트되었습니다.

    • 속성:
      • extension_name (string)
      • extension_version (string)
      • extension_previous_version (string)
      • extension_source (string)
      • status (string)

에이전트 실행

  • gemini_cli.agent.start: 에이전트 실행이 시작되었습니다.

    • 속성:
      • agent_id (string)
      • agent_name (string)
  • gemini_cli.agent.finish: 에이전트 실행이 완료되었습니다.

    • 속성:
      • agent_id (string)
      • agent_name (string)
      • duration_ms (int)
      • turn_count (int)
      • terminate_reason (string)

IDE

IDE 컴패니언 연결 및 대화 수명 주기 이벤트를 캡처합니다.

  • gemini_cli.ide_connection: IDE 컴패니언 연결.
    • 속성:
      • connection_type (string)

UI

터미널 렌더링 문제 및 관련 신호를 추적합니다.

  • kitty_sequence_overflow: 터미널 kitty 제어 시퀀스 오버플로.
    • 속성:
      • sequence_length (int)
      • truncated_sequence (string)

메트릭

메트릭은 시간에 따른 동작의 수치 측정값입니다.

사용자 지정

세션

시작 시 CLI 세션을 계산합니다.

  • gemini_cli.session.count (Counter, Int): CLI 시작 당 한 번씩 증가합니다.
도구

도구 사용량 및 지연 시간을 측정합니다.

  • gemini_cli.tool.call.count (Counter, Int): 도구 호출을 계산합니다.

    • 속성:
      • function_name
      • success (boolean)
      • decision (string: "accept", "reject", "modify", 또는 "auto_accept", 해당되는 경우)
      • tool_type (string: "mcp" 또는 "native", 해당되는 경우)
  • gemini_cli.tool.call.latency (Histogram, ms): 도구 호출 지연 시간을 측정합니다.

    • 속성:
      • function_name
API

API 요청 양과 지연 시간을 추적합니다.

  • gemini_cli.api.request.count (Counter, Int): 모든 API 요청을 계산합니다.

    • 속성:
      • model
      • status_code
      • error_type (해당되는 경우)
  • gemini_cli.api.request.latency (Histogram, ms): API 요청 지연 시간을 측정합니다.

    • 속성:
      • model
    • 참고: gen_ai.client.operation.duration(GenAI 규칙)과 겹칩니다.
토큰 사용량

모델 및 유형별로 사용된 토큰을 추적합니다.

  • gemini_cli.token.usage (Counter, Int): 사용된 토큰을 계산합니다.
    • 속성:
      • model
      • type ("input", "output", "thought", "cache", 또는 "tool")
    • 참고: input/output에 대해 gen_ai.client.token.usage와 겹칩니다.
파일

기본 컨텍스트와 함께 파일 작업을 계산합니다.

  • gemini_cli.file.operation.count (Counter, Int): 파일 작업을 계산합니다.

    • 속성:
      • operation ("create", "read", "update")
      • lines (Int, optional)
      • mimetype (string, optional)
      • extension (string, optional)
      • programming_language (string, optional)
  • gemini_cli.lines.changed (Counter, Int): 변경된 줄 수(파일 diff에서).

    • 속성:
      • function_name
      • type ("added" 또는 "removed")
채팅 및 스트리밍

압축, 잘못된 청크 및 재시도에 대한 복원력 카운터입니다.

  • gemini_cli.chat_compression (Counter, Int): 채팅 압축 작업을 계산합니다.

    • 속성:
      • tokens_before (Int)
      • tokens_after (Int)
  • gemini_cli.chat.invalid_chunk.count (Counter, Int): 스트림에서 잘못된 청크를 계산합니다.

  • gemini_cli.chat.content_retry.count (Counter, Int): 콘텐츠 오류로 인한 재시도를 계산합니다.

  • gemini_cli.chat.content_retry_failure.count (Counter, Int): 모든 콘텐츠 재시도가 실패한 요청을 계산합니다.

모델 라우팅

라우팅 지연 시간/실패 및 슬래시 명령 선택입니다.

  • gemini_cli.slash_command.model.call_count (Counter, Int): 슬래시 명령을 통한 모델 선택을 계산합니다.

    • 속성:
      • slash_command.model.model_name (string)
  • gemini_cli.model_routing.latency (Histogram, ms): 모델 라우팅 결정 지연 시간입니다.

    • 속성:
      • routing.decision_model (string)
      • routing.decision_source (string)
  • gemini_cli.model_routing.failure.count (Counter, Int): 모델 라우팅 실패를 계산합니다.

    • 속성:
      • routing.decision_source (string)
      • routing.error_message (string)
에이전트 실행

에이전트 수명 주기 메트릭: 실행, 기간 및 턴.

  • gemini_cli.agent.run.count (Counter, Int): 에이전트 실행을 계산합니다.

    • 속성:
      • agent_name (string)
      • terminate_reason (string)
  • gemini_cli.agent.duration (Histogram, ms): 에이전트 실행 기간입니다.

    • 속성:
      • agent_name (string)
  • gemini_cli.agent.turns (Histogram, turns): 에이전트 실행 당 턴 수입니다.

    • 속성:
      • agent_name (string)
승인 모드
실행

이 메트릭은 계획 모드와 같은 특정 승인 워크플로의 채택 및 사용을 추적합니다.

  • gemini_cli.plan.execution.count (Counter, Int): 계획 실행을 계산합니다.
    • 속성:
      • approval_mode (string)
UI

깜박임 횟수와 같은 UI 안정성 신호입니다.

  • gemini_cli.ui.flicker.count (Counter, Int): 깜박이는(터미널보다 높게 렌더링된) UI 프레임을 계산합니다.
성능

시작, CPU/메모리 및 단계 타이밍에 대한 선택적 성능 모니터링입니다.

  • gemini_cli.startup.duration (Histogram, ms): 단계별 CLI 시작 시간입니다.

    • 속성:
      • phase (string)
      • details (map, optional)
  • gemini_cli.memory.usage (Histogram, bytes): 메모리 사용량입니다.

    • 속성:
      • memory_type ("heap_used", "heap_total", "external", "rss")
      • component (string, optional)
  • gemini_cli.cpu.usage (Histogram, percent): CPU 사용량 백분율입니다.

    • 속성:
      • component (string, optional)
  • gemini_cli.tool.queue.depth (Histogram, count): 실행 대기열에 있는 도구 수.

  • gemini_cli.tool.execution.breakdown (Histogram, ms): 단계별 도구 시간입니다.

    • 속성:
      • function_name (string)
      • phase ("validation", "preparation", "execution", "result_processing")
  • gemini_cli.api.request.breakdown (Histogram, ms): 단계별 API 요청 시간입니다.

    • 속성:
      • model (string)
      • phase ("request_preparation", "network_latency", "response_processing", "token_processing")
  • gemini_cli.token.efficiency (Histogram, ratio): 토큰 효율성 메트릭입니다.

    • 속성:
      • model (string)
      • metric (string)
      • context (string, optional)
  • gemini_cli.performance.score (Histogram, score): 종합 성능 점수입니다.

    • 속성:
      • category (string)
      • baseline (number, optional)
  • gemini_cli.performance.regression (Counter, Int): 퇴행 감지 이벤트입니다.

    • 속성:
      • metric (string)
      • severity ("low", "medium", "high")
      • current_value (number)
      • baseline_value (number)
  • gemini_cli.performance.regression.percentage_change (Histogram, percent): 퇴행이 감지되었을 때 기준선 대비 변화율입니다.

    • 속성:
      • metric (string)
      • severity ("low", "medium", "high")
      • current_value (number)
      • baseline_value (number)
  • gemini_cli.performance.baseline.comparison (Histogram, percent): 기준선과의 비교입니다.

    • 속성:
      • metric (string)
      • category (string)
      • current_value (number)
      • baseline_value (number)

GenAI 의미 규칙

다음 메트릭은 GenAI 애플리케이션 전반의 표준화된 관찰 가능성을 위해 OpenTelemetry GenAI 의미 규칙 (opens in a new tab)을 준수합니다:

  • gen_ai.client.token.usage (Histogram, token): 작업 당 사용된 입력 및 출력 토큰 수입니다.

    • 속성:
      • gen_ai.operation.name (string): 작업 유형 (예: "generate_content", "chat")
      • gen_ai.provider.name (string): GenAI 공급자 ("gcp.gen_ai" 또는 "gcp.vertex_ai")
      • gen_ai.token.type (string): 토큰 유형 ("input" 또는 "output")
      • gen_ai.request.model (string, optional): 요청에 사용된 모델 이름
      • gen_ai.response.model (string, optional): 응답을 생성한 모델 이름
      • server.address (string, optional): GenAI 서버 주소
      • server.port (int, optional): GenAI 서버 포트
  • gen_ai.client.operation.duration (Histogram, s): 초 단위의 GenAI 작업 기간입니다.

    • 속성:
      • gen_ai.operation.name (string): 작업 유형 (예: "generate_content", "chat")
      • gen_ai.provider.name (string): GenAI 공급자 ("gcp.gen_ai" 또는 "gcp.vertex_ai")
      • gen_ai.request.model (string, optional): 요청에 사용된 모델 이름
      • gen_ai.response.model (string, optional): 응답을 생성한 모델 이름
      • server.address (string, optional): GenAI 서버 주소
      • server.port (int, optional): GenAI 서버 포트
      • error.type (string, optional): 작업이 실패한 경우 오류 유형