Repository navigation
Conversation
- Alloy 앱 이미지 태그를 v1.21.0으로 고정 - 검증: v1.21.0 이미지 확인 및 Alloy 설정 검증 통과
- Alloy filelog 정렬을 receiver 수준 ordering_criteria로 적용 - 파일 수집 순서를 oldest-to-newest 기준으로 고정 - 검증: Alloy v1.21.0 설정 검증 및 파이프라인 테스트 통과
- 임시 file exporter로 Alloy가 내보낸 로그 순서를 직접 확인 - 110개 회전 로그가 오래된 순서대로 전달되는지 검증 - 검증: Alloy 로그 파이프라인 통합 테스트 통과
- PEM 키와 Firebase Admin SDK 자격증명 파일을 Git 제외 대상으로 지정 - Terraform plan/state 및 로컬 API 키 백업 파일 제외 - 검증: git check-ignore로 대상 백업 파일 제외 확인
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- 임시 Alloy 설정 파일을 컨테이너에서도 읽을 수 있도록 권한을 0644로 설정 - compose 설정 파일의 0600 권한과 Alloy capability 제한은 유지 - Python 문법 및 diff 검사 통과; WSL E2E는 #267과 같은 Docker 로그 수집 타임아웃으로 종료
PHJ2000
left a comment
There was a problem hiding this comment.
확인했습니다. 기존 버전에서 업그레이드할 때 이미 수집한 로그를 다시 읽는 문제가 있어 인라인으로 남겼습니다. 해당 부분 보완 부탁드립니다.
suggestion: deploy/observability/README.md에 아직 v1.19.2와 file_input 우회 설정을 사용한다고 적혀 있습니다. 이번 변경에 맞춰 문서도 갱신해 주세요.
| include = ["/var/log/docker/*/*-json.log", "/var/log/docker/*/*-json.log.[1-4]"] | ||
| storage = otelcol.storage.file.docker.handler | ||
| start_at = "beginning" |
There was a problem hiding this comment.
block : 기존 버전에서 업그레이드할 때 저장된 읽기 위치를 이어받도록 보완해 주세요.
기존 file_input을 제거하면서 입력기 ID가 docker_files에서 기본값인 file_input으로 바뀌어, 같은 볼륨을 사용해도 기존 읽기 상태를 찾지 못합니다. 실제로 v1.19.2에서 로그를 수집한 뒤 파일과 상태 저장 디렉터리를 유지한 채 이번 설정으로 전환하니, 이미 수집한 로그를 처음부터 다시 읽고 출력했습니다.
현재 테스트는 새 버전에서의 재시작만 확인하므로, 기존 버전에서 수집한 상태로 업그레이드해도 이전 로그를 다시 보내지 않는지 검증하는 테스트도 추가해 주세요.
There was a problem hiding this comment.
기존 읽기 상태와의 하위 호환성이 필요한 상황이 있다는 점에는 동의합니다. 다만 이번 변경은 운영 중인 Alloy를 업그레이드하는 작업이 아니며, 서비스 중단 후 이전 상태를 복원해 재개할만큼의 유의미한 데이터도 없습니다. 그러므로 이번 변경에서는 기존 v1.19.2가 저장한 읽기 위치와의 호환성 및 마이그레이션 테스트를 범위에 포함하지 않겠습니다.
There was a problem hiding this comment.
운영 데이터가 없어서 이번 범위에서 제외하신 취지는 이해했습니다. 다만 이번 변경으로 발생하는 호환성 문제이므로, 이번 PR에서 해결하고 넘어가는 것이 맞다고 보았습니다.
로컬에서 확인해 보니 기존 읽기 기록을 새 키로 이전하면, 이번 PR의 새 수집기 구조를 유지하면서 이미 읽은 로그의 재수집을 막을 수 있었습니다. 미처리 로그를 누락 없이 이어 읽는 것과 재시작·로그 회전 시에도 중복 수집이 없는 것까지 확인했습니다.
이전 처리와 검증 테스트는 제가 보완해서 수정 커밋을 준비하고 공유드려도 괜찮을까요?
There was a problem hiding this comment.
앞서 답변드린 것처럼 이번 PR 에서는 기존 읽기 상태 마이그레이션을 범위에 포함하지 않기로 결정했습니다. 수정 커밋도 준비하지 않으셔도 됩니다. 이 범위 결정에 맞춰 리뷰를 부탁드립니다.
|
참고: 이번 버전 변경을 살펴보다가 흥미로운 의존성 관리 방식을 발견해서 공유합니다. Alloy가 내부적으로 사용하는 Loki 라이브러리를 브랜치의 최신 코드를 계속 따라가는 게 아니라 커밋을 고정해서 항상 같은 코드로 빌드되게 한다는 점이 신기했습니다. Go에서는 이런 버전 표기를 |
제안하신대로 이번 변경에 맞춰 문서를 갱신하였습니다. |
- Alloy v1.21.0 filelog의 alphabetical 정렬 설정으로 문서를 동기화 - file_input 우회 설정 제거와 Alloy #7212 근거를 반영 - 검증: git diff --cached --check
🧰 Chore PR
🔗 GitHub Issue
🧩 한눈에 요약
무엇을 변경했나?
왜 필요한가?
범위
🧪 테스트 / 검증
로컬
python deploy/observability/scripts/verify-log-pipeline.pyDocker -> Alloy -> Loki단계는 여전히 타임아웃되어 #267에서 조사 중이다.CI
permission denied가 원인.0644권한 수정 커밋5c5e3b75반영 후 CI #428 진행 중.Smoke / 수동 검증
테스트 공백
🧭 영향 범위
리스크
롤백
💬 리뷰 가이드
deploy/observability/app-agent/alloy/config.alloy,deploy/observability/app-agent/docker-compose.yml,deploy/observability/scripts/verify-log-pipeline.py의 임시 설정 파일 권한과 회전 순서 검증 코드file_input우회 대신 Alloy v1.21.0의 receiver 정렬 설정을 직접 사용한다.