로깅된 이벤트
GitLab v19.1GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능에 대한 특수 로깅을 사용할 수 있습니다. Description: 사용자가 작업을 수행할 권한이 없음 Class: Llm::BaseService
GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능에 대한 특수 로깅을 사용할 수 있습니다.
로깅된 이벤트#
검증으로 인한 서비스 반환#
-
Description: 사용자가 작업을 수행할 권한이 없음
-
Class:
Llm::BaseService -
Ai_event_name: permission_denied
-
Level: info
-
Arguments:
none
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: yes
-
Sidekiq: no
CompletionWorker 대기열에 추가#
-
Description: Sidekiq에서 completion worker 스케줄링
-
Class:
Llm::BaseService -
Ai_event_name: worker_enqueued
-
Level: info
-
Arguments:
user_id: message.user.id
-
resource_id: message.resource&.id -
resource_class: message.resource&.class&.name -
request_id: message.request_id -
action_name: message.ai_action -
options: job_options -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: yes
-
Sidekiq: no
중단: 리소스 없음#
-
Description: 슬래시 명령에 리소스가 없는 경우
-
Class:
Llm::ChatService -
Ai_event_name: missing_resource
-
Level: info
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: yes
-
Sidekiq: no
CompletionService 실행#
-
Description: completion 실행 중
-
Class:
Llm::Internal::CompletionService -
Ai_event_name: completion_service_performed
-
Level: info
-
Arguments:
user_id: prompt_message.user.to_gid
-
resource_id: prompt_message.resource&.to_gid -
action_name: prompt_message.ai_action -
request_id: prompt_message.request_id -
client_subscription_id: prompt_message.client_subscription_id -
completion_service_name: completion_class_name -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
LLM 응답에서 답변#
-
Description: 응답에서 답변 가져오기
-
Class:
Gitlab::Llm::Chain::Answer -
Ai_event_name: answer_received
-
Level: info
-
Arguments:
llm_answer_content: content
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
최종 답변#
-
Description: 응답에서 최종 답변 가져오기
-
Class:
Gitlab::Llm::Chain::Answer -
Ai_event_name: final_answer_received
-
Level: info
-
Arguments:
llm_answer_content: content
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
기본 최종 답변#
-
Description: 기본 최종 답변: 죄송합니다, 시간 내에 응답하지 못했습니다. 더 구체적인 요청을 해보시거나 /clear를 입력하여 새 채팅을 시작하세요.
-
Class:
Gitlab::Llm::Chain::Answer -
Ai_event_name: default_final_answer_received
-
Level: info
-
Arguments:
error_code: "A6000"
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
오류 메시지 / "오류"#
-
Description: 오류와 함께 응답할 때
-
Class:
Gitlab::Llm::Chain::Answer -
Ai_event_name: error_returned
-
Level: error
-
Arguments:
error: content
-
error_code: error_code -
source: source -
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI Gateway에서 응답 수신#
-
Description: AIGW에서 응답이 반환될 때
-
Class:
Gitlab::Llm::AiGateway::Client -
Ai_event_name: response_received
-
Level: info
-
Arguments:
response_from_llm: response_body
-
latency_seconds: latency_seconds -
user_id: user.id -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
AI Gateway에서 오류 수신#
-
Description: 스트리밍 명령에 대해 AIGW에서 오류가 반환될 때
-
Class:
Gitlab::Llm::AiGateway::Client -
Ai_event_name: error_response_received
-
Level: error
-
Arguments:
response_from_llm: parsed_response.dig('detail', 0, 'msg')
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI Gateway에 요청 수행#
-
Description: AI GW에 요청을 수행하기 전
-
Class:
Gitlab::Llm::AiGateway::Client -
Ai_event_name: performing_request
-
Level: info
-
Arguments:
url: url
-
body: body -
timeout: timeout -
stream: stream -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
사용자 액세스 토큰 생성#
-
Description: AIGW에서 단기 토큰 생성
-
Class:
Gitlab::Llm::AiGateway::CodeSuggestionsClient -
Ai_event_name: user_token_created
-
Level: info
-
Arguments:
none
-
Part of the system: code suggestions
-
Expanded logging?: no
-
Rails: yes
-
Sidekiq: no
Anthropic에서 응답 수신#
-
Description: 응답 수신
-
Class:
Gitlab::Llm::Anthropic::Client -
Ai_event_name: response_received
-
Level: info
-
Arguments:
ai_request_type: request_type
-
unit_primitive: unit_primitive -
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
응답 콘텐츠#
-
Description: 응답 콘텐츠
-
Class:
Gitlab::Llm::Anthropic::Client -
Ai_event_name: response_received
-
Level: info
-
Arguments:
ai_request_type: request_type
-
unit_primitive: unit_primitive -
response_from_llm: response_body -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
Anthropic에 요청 수행#
-
Description: completion 요청 수행
-
Class:
Gitlab::Llm::Anthropic::Client -
Ai_event_name: performing_request
-
Level: info
-
Arguments:
options: options
-
ai_request_type: request_type -
unit_primitive: unit_primitive -
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI Gateway에서 문서 검색#
-
Description: 문서 검색 요청 수행
-
Class:
Gitlab::Llm::AiGateway::DocsClient -
Ai_event_name: performing_request
-
Level: info
-
Arguments:
options: options
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI Gateway에서 문서 콘텐츠 검색됨#
-
Description: 문서와 함께 AIGW에서 응답
-
Class:
Gitlab::Llm::AiGateway::DocsClient -
Ai_event_name: response_received
-
Level: info
-
Arguments:
response_from_llm: response
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
질문 분류 중 JSON 파싱 오류#
-
Description: JSON을 파싱할 수 없을 때 로깅
-
Class:
Gitlab::Llm::AiGateway::Completions::CategorizeQuestions -
Ai_event_name: error
-
Level: error
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
응답에 정의된 카테고리가 포함되지 않음#
-
Description: 응답에 정의된 카테고리 중 하나가 포함되지 않을 때 로깅
-
Class:
Gitlab::Llm::AiGateway::Completions::CategorizeQuestions -
Ai_event_name: error
-
Level: error
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
질문 분류 중 오류 응답 수신#
-
Description: 반환된 응답이 성공적이지 않을 때 로깅
-
Class:
Gitlab::Llm::AiGateway::Completions::CategorizeQuestions -
Ai_event_name: error
-
Level: error
-
Arguments:
error_type: response.dig('error', 'type')
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
선택된 도구#
-
Description: 채팅이 선택한 도구에 대한 정보
-
Class:
Gitlab::Llm::Chain::Tools::Tool -
Ai_event_name: picked_tool
-
Level: info
-
Arguments:
duo_chat_tool: tool_class.to_s
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI 클라이언트에 요청 수행#
-
Description: 채팅을 위한 요청 수행
-
Class:
Gitlab::Llm::Chain::Requests::AiGateway -
Ai_event_name: response_received
-
Level: info
-
Arguments:
prompt: prompt[:prompt]
-
response_from_llm: response -
unit_primitive: unit_primitive -
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
스트리밍 오류#
-
Description: 스트리밍 중 반환된 오류
-
Class:
Gitlab::Llm::Chain::Requests::Anthropic -
Ai_event_name: error_response_received
-
Level: error
-
Arguments:
error: data&.dig("error")
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
문서 질문 콘텐츠의 최종 결과 획득#
-
Description: 문서 질문에 대한 결과 획득 - 콘텐츠
-
Class:
Gitlab::Llm::Chain::Tools::EmbeddingsCompletion -
Ai_event_name: response_received
-
Level: info
-
Arguments:
prompt: final_prompt[:prompt]
-
response_from_llm: final_prompt_result -
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
스트리밍 오류#
-
Description: 문서 질문에서 스트리밍 명령에 대해 AIGW에서 오류가 반환될 때
-
Class:
Gitlab::Llm::Chain::Tools::EmbeddingsCompletion -
Ai_event_name: error_response_received
-
Level: error
-
Arguments:
error: error.message
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
도구에서 이미 답변 수신#
-
Description: 도구가 이미 선택된 경우 (콘텐츠: You already have the answer from #{self.class::NAME} tool, read carefully.)
-
Class:
Gitlab::Llm::Chain::Tools::Tool -
Ai_event_name: incorrect_response_received
-
Level: info
-
Arguments:
error_message: content
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
도구 순환 감지#
-
Description: 도구가 다시 선택될 때
-
Class:
Gitlab::Llm::Chain::Tools::Tool -
Ai_event_name: incorrect_response_received
-
Level: info
-
Arguments:
picked_tool: cls.class.to_s
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
TanukiBot 호출#
-
Description: 문서 요청 수행
-
Class:
Gitlab::Llm::Chain::Tools::GitlabDocumentation::Executor -
Ai_event_name: documentation_question_initial_request
-
Level: info
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
#{resource_name} 찾기 오류#
-
Description: 리소스(이슈/에픽/머지 리퀘스트)를 찾을 수 없을 때
-
Class:
Gitlab::Llm::Chain::Tools::Identifier -
Ai_event_name: incorrect_response_received
-
Level: error
-
Arguments:
error_message: authorizer.message
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
LLM에서 답변 수신#
-
Description: identifier로부터의 응답
-
Class:
Gitlab::Llm::Chain::Tools::Identifier -
Ai_event_name: response_received
-
Level: info
-
Arguments:
response_from_llm: content
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
JSON 파싱 오류#
-
Description: JSON이 잘못된 형식일 때 (Observation: JSON has an invalid format. Please retry)
-
Class:
Gitlab::Llm::Chain::Tools::Identifier -
Ai_event_name: error
-
Level: error
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
리소스 이미 식별됨#
-
Description: 이미 식별된 리소스 (You already have identified the #{resource_name} #{resource.to_global_id}, read carefully.)
-
Class:
Gitlab::Llm::Chain::Tools::Identifier -
Ai_event_name: incorrect_response_received
-
Level: info
-
Arguments:
error_message: content
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
지원되는 Issuable 유형 권한 허용#
-
Description: 이슈/에픽에 대한 권한(policy.can?) 로깅
-
Class:
Gitlab::Llm::Chain::Tools::SummarizeComments::Executor -
Ai_event_name: permission
-
Level: info
-
Arguments:
allowed: ability
-
Part of the system: feature
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
지원되는 Issuable 유형 권한 허용#
-
Description: 이슈/에픽에 대한 권한(policy.can?) 로깅
-
Class:
Gitlab::Llm::Chain::Tools::SummarizeComments::ExecutorOld -
Ai_event_name: permission
-
Level: info
-
Arguments:
allowed: ability
-
Part of the system: feature
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
summarize_comments를 위한 답변 콘텐츠#
-
Description: 댓글 요약 기능에 대한 답변
-
Class:
Gitlab::Llm::Chain::Tools::SummarizeComments::ExecutorOld -
Ai_event_name: response_received
-
Level: info
-
Arguments:
response_from_llm: content
-
Part of the system: feature
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
채팅 요청의 프롬프트 콘텐츠#
-
Description: 채팅 관련 요청
-
Class:
Gitlab::Llm::Chain::Concerns::AiDependent -
Ai_event_name: prompt_content
-
Level: info
-
Arguments:
prompt: prompt_text
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
"요청이 너무 많습니다. #{delay}초 후에 재시도합니다"#
-
Description: 지수 백오프 루프에 진입할 때
-
Class:
Gitlab::Llm::Chain::Concerns::ExponentialBackoff -
Ai_event_name: retrying_request
-
Level: info
-
Arguments:
none
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
리소스를 찾을 수 없음#
-
Description: 리소스를 찾을 수 없거나 권한이 없음
-
Class:
Gitlab::Llm::Utils::Authorizer -
Ai_event_name: permission_denied
-
Level: info
-
Arguments:
error_code: "M3003"
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
GitLab Duo Chat에 대한 접근 권한 없음#
-
Description: Duo Chat에 대한 접근 권한 없음
-
Class:
Gitlab::Llm::Utils::Authorizer -
Ai_event_name: permission_denied
-
Level: info
-
Arguments:
error_code: "M3004"
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
AI가 비활성화됨#
-
Description: 컨테이너에 대해 AI가 활성화되지 않음
-
Class:
Gitlab::Llm::Utils::Authorizer -
Ai_event_name: permission_denied
-
Level: info
-
Arguments:
error_code: "M3002"
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
Vertex에 요청 수행#
-
Description: 요청 수행
-
Class:
Gitlab::Llm::VertexAi::Client -
Ai_event_name: performing_request
-
Level: info
-
Arguments:
unit_primitive: unit_primitive
-
options: config -
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
응답 콘텐츠#
-
Description: aigw - vertex - 콘텐츠로부터의 응답
-
Class:
Gitlab::Llm::VertexAi::Client -
Ai_event_name: response_received
-
Level: info
-
Arguments:
unit_primitive: unit_primitive
-
response_from_llm: response.to_json -
Part of the system: abstraction_layer
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
Vertex에서 응답 수신#
-
Description: aigw - vertex로부터의 응답
-
Class:
Gitlab::Llm::VertexAi::Client -
Ai_event_name: response_received
-
Level: info
-
Arguments:
unit_primitive: unit_primitive
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
Vertex에서 빈 응답#
-
Description: aigw - vertex로부터의 빈 응답
-
Class:
Gitlab::Llm::VertexAi::Client -
Ai_event_name: empty_response_received
-
Level: error
-
Arguments:
unit_primitive: unit_primitive
-
Part of the system: abstraction_layer
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
알 수 없는 이벤트를 최종 답변으로 사용자에게 표시#
-
Description: 알 수 없는 이벤트
-
Class:
Gitlab::Llm::Chain::Agents::SingleActionExecutor -
Ai_event_name: unknown_event
-
Level: warn
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
GitLab Rails에서 도구 찾기 실패#
-
Description: 도구를 찾지 못함
-
Class:
Gitlab::Llm::Chain::Agents::SingleActionExecutor -
Ai_event_name: tool_not_find
-
Level: error
-
Arguments:
tool_name: tool_name
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
v2/chat/agent에서 이벤트 수신#
-
Description: 이벤트 수신
-
Class:
Gitlab::Duo::Chat::StepExecutor -
Ai_event_name: event_received
-
Level: info
-
Arguments:
event: event
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
관찰 업데이트 실패#
-
Description: 관찰 업데이트 실패
-
Class:
Gitlab::Duo::Chat::StepExecutor -
Ai_event_name: agent_steps_empty
-
Level: error
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
v2/chat/agent에 요청#
-
Description: 요청
-
Class:
Gitlab::Duo::Chat::StepExecutor -
Ai_event_name: performing_request
-
Level: info
-
Arguments:
params: params
-
Part of the system: duo_chat
-
Expanded logging?: yes
-
Rails: no
-
Sidekiq: yes
v2/chat/agent에서 스트리밍 완료#
-
Description: 스트리밍 완료
-
Class:
Gitlab::Duo::Chat::StepExecutor -
Ai_event_name: streaming_finished
-
Level: info
-
Arguments:
none
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
GitLab Duo Chat Agent에서 오류 수신#
-
Description: 스트리밍 중 반환된 오류
-
Class:
Gitlab::Duo::Chat::StepExecutor -
Ai_event_name: error_returned
-
Level: error
-
Arguments:
status: response.code
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
GitLab Duo Chat Agent에서 청크 파싱 실패#
-
Description: 청크 파싱 실패
-
Class:
Gitlab::Duo::Chat::AgentEventParser -
Ai_event_name: parsing_error
-
Level: warn
-
Arguments:
event_json_size: event_json.length
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes
GitLab-Rails에서 이벤트 클래스 찾기 실패#
-
Description: 이벤트 클래스 없음
-
Class:
Gitlab::Duo::Chat::AgentEventParser -
Ai_event_name: parsing_error
-
Level: error
-
Arguments:
event_type: event['type']
-
Part of the system: duo_chat
-
Expanded logging?: no
-
Rails: no
-
Sidekiq: yes