Firebase 원격 분석 플러그인은 측정항목, trace, 로그의 조합을 Google Cloud Observability로 내보냅니다. 이 문서에서는 수집되는 측정항목, 트레이스 속성, 로그와 지연 시간, 할당량, 비용 측면에서 예상할 수 있는 사항을 자세히 설명합니다.
원격 분석 지연
특정 호출의 원격 분석이 Firebase에서 제공되기까지 약간의 지연이 발생할 수 있습니다. 이는 내보내기 간격 (기본값: 5분)에 따라 다릅니다.
할당량 및 한도
다음과 같은 몇 가지 중요한 할당량이 있습니다.
비용
Cloud Logging, Cloud Trace, Cloud Monitoring은 무료 등급 혜택을 넉넉하게 제공합니다. 구체적인 가격은 다음 링크에서 확인할 수 있습니다.
측정항목
Firebase 원격 분석 플러그인은 다음 섹션에 설명된 다양한 Genkit 작업 유형을 지원하기 위해 여러 측정항목을 수집합니다.
기능 측정항목
기능은 Genkit 코드의 최상위 진입점입니다. 대부분의 경우 이는 흐름입니다. 그렇지 않으면 트레이스의 최상위 스팬이 됩니다.
이름 | 유형 | 설명 |
---|---|---|
genkit/feature/requests | 카운터 | 요청 수 |
genkit/feature/latency | 히스토그램 | 실행 지연 시간(밀리초) |
각 기능 측정항목에는 다음과 같은 측정기준이 포함됩니다.
이름 | 설명 |
---|---|
name | 기능의 이름입니다. 대부분의 경우 최상위 Genkit 흐름입니다. |
상태 | 기능 요청의 성공 여부에 따라 'success' 또는 'failure' |
오류 | status=failure 인 경우에만 설정됩니다. 실패를 일으킨 오류 유형을 포함합니다. |
source | Genkit 소스 언어입니다. 예: 'ts' |
sourceVersion | Genkit 프레임워크 버전 |
액션 측정항목
작업은 Genkit 내에서 실행되는 일반적인 단계를 나타냅니다. 각 단계에는 다음과 같은 측정항목이 추적됩니다.
이름 | 유형 | 설명 |
---|---|---|
genkit/action/requests | 카운터 | 이 작업이 실행된 횟수입니다. |
genkit/action/latency | 히스토그램 | 실행 지연 시간(밀리초) |
각 액션 측정항목에는 다음 측정기준이 포함됩니다.
이름 | 설명 |
---|---|
name | 작업 이름 |
featureName | 실행 중인 상위 기능의 이름 |
경로 | 기능 루트에서 이 작업으로의 실행 경로입니다. 예: '/myFeature/parentAction/thisAction' |
상태 | 작업의 성공 여부에 따라 'success' 또는 'failure' |
오류 | status=failure 인 경우에만 설정됩니다. 실패를 일으킨 오류 유형을 포함합니다. |
source | Genkit 소스 언어입니다. 예: 'ts' |
sourceVersion | Genkit 프레임워크 버전 |
측정항목 생성
모델과 상호작용하는 작업과 관련된 특수 작업 측정항목입니다. 요청 및 지연 시간 외에도 입력과 출력도 추적되며, 모델별 측정기준을 사용하면 디버깅 및 구성 조정이 더 쉬워집니다.
이름 | 유형 | 설명 |
---|---|---|
genkit/ai/generate/requests | 카운터 | 이 모델이 호출된 횟수 |
genkit/ai/generate/latency | 히스토그램 | 실행 지연 시간(밀리초) |
genkit/ai/generate/input/tokens | 카운터 | 입력 토큰 |
genkit/ai/generate/output/tokens | 카운터 | 출력 토큰 |
genkit/ai/generate/input/characters | 카운터 | 문자 입력 |
genkit/ai/generate/output/characters | 카운터 | 출력 문자 |
genkit/ai/generate/input/images | 카운터 | 입력 이미지 |
genkit/ai/generate/output/images | 카운터 | 출력 이미지 |
genkit/ai/generate/input/audio | 카운터 | 오디오 파일 입력 |
genkit/ai/generate/output/audio | 카운터 | 오디오 파일 출력 |
각 생성 측정항목에는 다음 측정기준이 포함됩니다.
이름 | 설명 |
---|---|
modelName | 모델 이름 |
featureName | 실행 중인 상위 기능의 이름 |
경로 | 기능 루트에서 이 작업으로의 실행 경로입니다. 예: '/myFeature/parentAction/thisAction' |
latencyMs | 모델이 걸린 응답 시간 |
상태 | 기능 요청의 성공 여부에 따라 'success' 또는 'failure' |
오류 | status=failure 인 경우에만 설정됩니다. 실패를 일으킨 오류 유형을 포함합니다. |
source | Genkit 소스 언어입니다. 예: 'ts' |
sourceVersion | Genkit 프레임워크 버전 |
추적
모든 Genkit 작업은 AI 기능에 관한 자세한 트레이스를 제공하도록 자동으로 계측됩니다. 로컬에서는 개발자 UI에 트레이스가 표시됩니다. 배포된 앱의 경우 Firebase Genkit Monitoring을 사용 설정하여 동일한 수준의 가시성을 확보합니다.
다음 섹션에서는 트레이스의 특정 스팬에 대한 Genkit 작업 유형을 기반으로 예상할 수 있는 트레이스 속성을 설명합니다.
루트 스팬
루트 스팬에는 전체 트레이스의 상태 속성과 개별 스팬의 상태 속성을 구분하는 데 도움이 되는 특수 속성이 있습니다.
속성 이름 | 설명 |
---|---|
genkit/feature | 실행 중인 상위 기능의 이름 |
genkit/isRoot | 이 스팬이 루트 스팬인 경우 true로 표시됩니다. |
genkit/rootState | 전체 실행 상태(success 또는 error )입니다. 이 단계가 특히 실패했음을 나타내는 것은 아닙니다. |
흐름
속성 이름 | 설명 |
---|---|
genkit/input | 흐름의 입력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/metadata/subtype | Genkit 작업 유형입니다. 흐름의 경우 flow 입니다. |
genkit/name | 이 Genkit 작업의 이름입니다. 이 경우 흐름의 이름 |
genkit/output | 흐름에서 생성된 출력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/path | 유형 정보를 포함하여 트레이스의 이 단계로 이어지는 정규화된 실행 경로입니다. |
genkit/state | 이 스팬 실행의 상태입니다(success 또는 error ). |
genkit/type | 이 스팬에 해당하는 Genkit 원시 유형입니다. 흐름의 경우 action 입니다. |
Util
속성 이름 | 설명 |
---|---|
genkit/input | 유틸리티의 입력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/name | 이 Genkit 작업의 이름입니다. 이 경우 흐름의 이름 |
genkit/output | util에서 생성된 출력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/path | 유형 정보를 포함하여 트레이스의 이 단계로 이어지는 정규화된 실행 경로입니다. |
genkit/state | 이 스팬 실행의 상태입니다(success 또는 error ). |
genkit/type | 이 스팬에 해당하는 Genkit 원시 유형입니다. 흐름의 경우 util 입니다. |
모델
속성 이름 | 설명 |
---|---|
genkit/input | 모델의 입력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/metadata/subtype | Genkit 작업 유형입니다. 모델의 경우 model 입니다. |
genkit/model | 모델의 이름입니다. |
genkit/name | 이 Genkit 작업의 이름입니다. 이 경우 모델 이름입니다. |
genkit/output | 모델에서 생성된 출력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/path | 유형 정보를 포함하여 트레이스의 이 단계로 이어지는 정규화된 실행 경로입니다. |
genkit/state | 이 스팬 실행의 상태입니다(success 또는 error ). |
genkit/type | 이 스팬에 해당하는 Genkit 원시 유형입니다. 흐름의 경우 action 입니다. |
도구
속성 이름 | 설명 |
---|---|
genkit/input | 모델의 입력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/metadata/subtype | Genkit 작업 유형입니다. 도구의 경우 tool 입니다. |
genkit/name | 이 Genkit 작업의 이름입니다. 이 경우 모델 이름입니다. |
genkit/output | 모델에서 생성된 출력입니다. 트레이스 속성 크기 제한으로 인해 항상 <redacted> 입니다. |
genkit/path | 유형 정보를 포함하여 트레이스의 이 단계로 이어지는 정규화된 실행 경로입니다. |
genkit/state | 이 스팬 실행의 상태입니다(success 또는 error ). |
genkit/type | 이 스팬에 해당하는 Genkit 원시 유형입니다. 흐름의 경우 action 입니다. |
로그
Firebase Genkit 모니터링이 적용된 배포된 앱의 경우 로그는 AI 기능의 각 단계에 관한 풍부한 세부정보를 제공하는 입력, 출력, 구성 메타데이터를 캡처하는 데 사용됩니다.
모든 로그에는 다음과 같은 공유 메타데이터 필드가 포함됩니다.
필드 이름 | 설명 |
---|---|
insertId | 로그 항목의 고유 ID |
jsonPayload | 각 로그 유형에 고유한 변수 정보를 위한 컨테이너 |
라벨 | {module: genkit} |
logName | projects/weather-gen-test-next/logs/genkit_log |
receivedTimestamp | Cloud에서 로그를 수신한 시간입니다. |
리소스 | 배포 정보 리전, projectId를 포함하여 로그 소스에 관한 정보 |
줄이는 것을 | 작성된 로그 수준입니다. Cloud의 LogSeverity를 참고하세요. |
spanId | 이 로그를 만든 스팬의 식별자 |
타임스탬프 | 클라이언트가 메시지를 기록한 시간입니다. |
trace | projects/<project-id>/traces/<trace-id> 형식의 트레이스 식별자 |
traceSampled | 트레이스가 샘플링되었는지 여부를 나타내는 불리언입니다. 로그가 샘플링되지 않습니다. |
각 로그 유형에는 각 섹션에 설명된 서로 다른 JSON 페이로드가 있습니다.
입력
JSON 페이로드:
필드 이름 | 설명 |
---|---|
메시지 | 여러 부분으로 구성된 메시지의 경우 (message X of N) 를 포함하는 [genkit] Input[<path>, <featureName>] |
메타데이터 | 작업에 전송된 입력 메시지를 포함한 추가 컨텍스트 |
메타데이터:
필드 이름 | 설명 |
---|---|
콘텐츠 | 이 Genkit 작업으로 전송된 입력 메시지 콘텐츠 |
featureName | Genkit 흐름, 작업, 도구, 유틸 또는 도우미의 이름입니다. |
messageIndex * | 여러 메일이 포함된 입력의 메일 순서를 나타내는 색인입니다. 단일 메시지의 경우 항상 0입니다. |
모델 * | 모델 이름입니다. |
경로 | step1 > step2 > step3 형식의 이 로그를 생성한 실행 경로입니다. |
partIndex * | 여러 부분으로 구성된 메시지의 메시지 내 부분 순서를 나타내는 색인입니다. 이는 단일 입력에서 텍스트와 이미지를 결합하는 일반적인 경우입니다. |
qualifiedPath | 이 로그를 생성한 실행 경로입니다(/{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 형식의 유형 정보 포함). |
totalMessages * | 이 입력의 총 메시지 수입니다. 단일 메시지의 경우 항상 1입니다. |
totalParts * | 이 메시지의 총 부분 수입니다. 단일 부분 메시지의 경우 항상 1입니다. |
(*) 별표표시된 항목은 모델 상호작용의 입력 로그에만 표시됩니다.
출력
JSON 페이로드:
필드 이름 | 설명 |
---|---|
메시지 | 여러 부분으로 구성된 메시지의 경우 (message X of N) 를 포함하는 [genkit] Output[<path>, <featureName>] |
메타데이터 | 작업에 전송된 입력 메시지를 포함한 추가 컨텍스트 |
메타데이터:
필드 이름 | 설명 |
---|---|
candidateIndex * (지원 중단됨) | 여러 후보가 포함된 출력의 후보 순서를 나타내는 색인입니다. 후보가 하나인 로그의 경우 항상 0입니다. |
콘텐츠 | Genkit 작업에서 생성된 출력 메시지 |
featureName | Genkit 흐름, 작업, 도구, 유틸 또는 도우미의 이름입니다. |
messageIndex * | 여러 메일이 포함된 입력의 메일 순서를 나타내는 색인입니다. 단일 메시지의 경우 항상 0입니다. |
모델 * | 모델 이름입니다. |
경로 | 이 로그를 생성한 실행 경로입니다. 형식은 `step1 > step2 > step3 |
partIndex * | 여러 부분으로 구성된 메시지의 메시지 내 부분 순서를 나타내는 색인입니다. 이는 단일 출력에서 텍스트와 이미지를 결합할 때 일반적입니다. |
qualifiedPath | 이 로그를 생성한 실행 경로입니다. 형식은 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 입니다. |
totalCandidates * (지원 중단됨) | 출력으로 생성된 총 후보 수입니다. 단일 후보 메시지의 경우 항상 1입니다. |
totalParts * | 이 메시지의 총 부분 수입니다. 단일 부분 메시지의 경우 항상 1입니다. |
(*) 별표표시된 항목은 모델 상호작용의 출력 로그에만 표시됩니다.
구성
JSON 페이로드:
필드 이름 | 설명 |
---|---|
메시지 | [genkit] Config[<path>, <featureName>] |
메타데이터 | 작업에 전송된 입력 메시지를 포함한 추가 컨텍스트 |
메타데이터:
필드 이름 | 설명 |
---|---|
featureName | Genkit 흐름, 작업, 도구, 유틸 또는 도우미의 이름입니다. |
모델 | 모델 이름입니다. |
경로 | 이 로그를 생성한 실행 경로입니다. 형식은 `step1 > step2 > step3 |
qualifiedPath | 이 로그를 생성한 실행 경로입니다. 형식은 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 입니다. |
source | 사용된 Genkit 라이브러리 언어입니다. 지원되는 유일한 언어이므로 항상 'ts'로 설정됩니다. |
sourceVersion | Genkit 라이브러리 버전입니다. |
온도 | 사용된 모델 온도입니다. |
경로
JSON 페이로드:
필드 이름 | 설명 |
---|---|
메시지 | [genkit] Paths[<path>, <featureName>] |
메타데이터 | 작업에 전송된 입력 메시지를 포함한 추가 컨텍스트 |
메타데이터:
필드 이름 | 설명 |
---|---|
flowName | Genkit 흐름, 작업, 도구, 유틸 또는 도우미의 이름입니다. |
paths | 수집된 스팬의 모든 실행 경로가 포함된 배열입니다. |