텔레메트리
텔레메트리 (Telemetry)
Docker Agent는 도구 개선을 위해 익명 사용 데이터를 수집해요. 텔레메트리는 언제든 비활성화할 수 있어요.
출처: 문서
본문
첫 실행 시 Docker Agent는 텔레메트리 수집에 대한 공지를 표시해서 항상 인지하게 해줘요. 모든 이벤트는 기록될 때 동기적으로 처리돼요.
텔레메트리 비활성화 (Disabling Telemetry)
# Disable via environment variable
$ TELEMETRY_ENABLED=false docker agent run agent.yaml
# Or export it in your shell profile
$ export TELEMETRY_ENABLED=false
Note 기본값 (Default) 텔레메트리는 기본적으로 활성화되어 있어요. 거부(opt out)하려면
TELEMETRY_ENABLED=false를 설정하세요.
수집되는 것 ✅ (What's Collected)
- 명령 이름과 성공/실패 상태
- 에이전트 이름과 모델 유형
- 도구 이름과 호출 성공/실패 여부
- 토큰 수(입력/출력 합계)와 예상 비용
- 세션 메타데이터 (지속 시간, 에러 수)
수집되지 않는 것 ❌ (What's NOT Collected)
- 사용자 입력 또는 프롬프트
- 에이전트 응답 또는 생성된 콘텐츠
- 파일 내용
- API 키 또는 자격 증명
- 개인 식별 정보 (PII)
Tip 이벤트를 로컬에서 보기
--debug를 사용하면 텔레메트리 이벤트를 어디에도 보내지 않고 디버그 로그로 출력할 수 있어요.
docker agent run agent.yaml --debug
이벤트 유형 (Event Types)
텔레메트리 시스템은 구조화되고 타입 안전한 이벤트를 사용해요:
| Event Type | What It Tracks |
|---|---|
| Command | 성공 상태를 포함한 CLI 명령 실행 |
| Tool | 타이밍과 에러 정보를 포함한 에이전트 도구 호출 |
| Token | 모델, 세션, 비용별 LLM 토큰 사용량 |
| Session | 시작/종료 이벤트와 집계 메트릭을 포함한 에이전트 세션 수명 주기 |
개발자용 (For Developers)
텔레메트리는 모든 명령에 자동으로 감싸져 있어요. 추가 이벤트를 기록하려면 컨텍스트 기반 API를 사용해요:
// Recommended: context-based telemetry (clean, testable)
if telemetryClient := telemetry.FromContext(ctx); telemetryClient != nil {
telemetryClient.RecordToolCall(ctx, "filesystem", "session-id", "agentName", time.Millisecond*500, nil)
telemetryClient.RecordTokenUsage(ctx, "gpt-4", 100, 50, 0.01)
}
// Or use direct calls
telemetry.TrackCommand("run", args)
Track() 이 호출되면 이벤트는 동기적으로 처리되어 HTTP 요청을 즉시 보내요.