TL;DR
- Cloudflare Workers의 내장 오류 모니터링 기능인 Issues가 반복 오류를 묶고 진단 정보를 코딩 에이전트에 전달하는 오픈 베타를 시작함.
- Issues가 예외, 5xx 응답, 오류 로그를 하나의 이슈로 묶고 발생 횟수와 추세, 관련 로그·트레이스를 보여줌.
- Workers의 내장 OpenTelemetry API로 사용자·계정·세션 식별자를 추가해 오류가 집중된 대상을 파악할 수 있음.
- Automations가 발생 횟수 임계값 도달 또는 조용한 기간 뒤 재발 시 이슈 정보를 코딩 에이전트, 웹훅, 채팅·사고 관리 시스템으로 전달함.
- Cloudflare Workflows에서 Issues를 적용해 하루 안에 마이그레이션 재시도 문제와 인스턴스 삭제 문제를 찾아 해결함.
프로덕션 오류를 자동으로 포착
- 에이전트는 관측성 데이터 조회, 저장소 탐색, 코드 수정, 테스트 작성, 풀 리퀘스트 개설을 수행할 수 있지만, 반복 실패를 같은 버그로 묶고 관련 진단 정보를 전달하는 작업은 여전히 수동임.
- Cloudflare가 Workers 내장 오류 모니터링 기능인 Issues를 오픈 베타로 공개함. 반복되는 예외, 5xx 응답, 오류 로그를 하나의 이슈로 묶음.
- 이슈에는 오류, 스택 트레이스, 로그, 트레이스, Worker 버전을 담아 설정된 코딩 에이전트에 전달할 수 있음. 에이전트가 이슈 분류, 추가 데이터 조회, 풀 리퀘스트 개설 등의 설정된 워크플로를 실행하도록 트리거할 수 있음.
- 에이전트에 전달할 첫 이슈 처리 지시에는 이슈를 한 건만 조회하고, 이슈가 없으면 없다고 알리며, 이슈가 있으면 상세 내용을 바탕으로 진단하고 로컬에서 수정한 뒤 관련 검사를 실행하고 변경 사항과 결과를 보여주되 배포 전 승인을 요청하도록 지정할 수 있음.
실패를 자동으로 포착
- 설정 한 줄로 Worker에 계측 코드를 추가하지 않고도 Issues를 활성화할 수 있음. Workers 런타임에 내장되어 있어 별도 소프트웨어 개발 키트(SDK)나 애플리케이션 래퍼가 필요하지 않음.
- 활성화하면 포착되지 않은 예외, 실패한 호출, HTTP 5xx 응답,
console.log()및console.error()출력, 스택 트레이스가 포함된 로그를 기록함. 반복문 안에서 대량의 로그를 작성하는 코드와 폭주하는 알람 조건도 표시함. - 배포 후 Worker 핸들러에서 오류가 발생하는 경우, 요청 ID가 각각 달라도 같은 버그에서 비롯된 실패를 하나로 묶음. 오류가 처음 나타난 시점, 발생 횟수, 발생 빈도 변화도 보여줌.
- 이슈 화면에서 오류와 가능한 경우 스택 트레이스, 오류에 앞서 발생한 로그와 트레이스, Worker 버전, 요청 세부 정보, 시간에 따른 이슈 추세를 확인할 수 있음.
에이전트에 오류 맥락 제공
- Cloudflare는 Worker 내부에서 발생한 상황을 포착하지만, 애플리케이션에서 어떤 사용자·계정·세션이 중요한지는 알지 못함.
- 별도 패키지 설치 없이 Workers 런타임의 내장 OpenTelemetry API를 이용해 활성 스팬에
user.id,account.id,session.id속성을 설정할 수 있음. - 이 식별자는 각 오류 발생 정보에 표시되므로 에이전트에 전달하기 전에 실패가 특정 계정이나 세션에 집중되는지 확인할 수 있음.
감지한 이슈를 에이전트에 전달
- 누군가 대시보드에서 스택 트레이스를 복사해 프롬프트에 붙여 넣지 않아도 됨. 자동화를 한 번 설정하면 이슈가 발생 횟수 임계값을 넘거나 한동안 잠잠했던 뒤 다시 발생할 때 Automations를 통해 에이전트에 전달함. 자동화 실행 시점과 이슈 목적지를 지정할 수 있음.
- 연결 대상은 다음과 같음.
- 내장 코딩 에이전트: Claude Code는 루틴 ID와 토큰, Cursor는 자동화 웹훅 URL, Devin은 API 토큰과 조직 ID로 연결함.
- 일반 웹훅: 자체 에이전트나 HTTPS 엔드포인트로 이슈 맥락을 전송함.
- 채팅 및 사고 관리: 채팅 또는 온콜 워크플로를 통해 팀에 알림을 보냄.
- 자동화 실행 시 실패 요약과 이슈에 수집된 진단 맥락을 전달함. 여기에는 예외, 소스 맵이 적용된 스택 트레이스, 오류 앞뒤의 로그와 트레이스, Worker 버전, 추가한 애플리케이션 맥락이 포함됨.
- 더 깊은 조사를 위해 에이전트를 Cloudflare MCP에 별도로 연결하면 관련 로그와 트레이스를 조회하고 코드·테스트 변경을 제안하거나 풀 리퀘스트를 열 수 있음.
- 프로덕션 반영 전 풀 리퀘스트를 검토하고 수정 사항을 배포한 뒤 이슈를 해결됨으로 표시하는 과정은 사람이 통제함.
Issues가 하루 동안 Workflows 버그 두 건을 찾아 해결한 방식
- 장시간 실행되는 다단계 애플리케이션을 지원하는 Cloudflare Workflows는 Workers 플랫폼 위에 구축됨.
- 내부 서비스가 단계, 재시도, 저장된 상태를 추적하므로 Workflows는 자체 프로덕션 시스템에서 Issues를 시험하기에 적합한 환경임. 활성화한 지 하루 안에 대량의 트래픽 속에 숨겨져 있던 특이 사례 두 건을 발견함.
- 마이그레이션 재시도 반복: Workflows 제어 평면 마이그레이션이 특수 사례에서 마이그레이션을 적용하다 SQLite 외래 키 오류를 반복해서 만났으며, Issues로 문제를 찾아 수정함.
- 완료되지 않는 삭제 절차: Workflow 인스턴스 삭제 중 특수 사례에서 Workers 하위 요청 한도를 초과해 삭제가 끝나지 않는 문제가 발견됐으며, Issues를 통해 문제를 찾아 수정함.
- 수천 건의 개별 관측 데이터와 사용자 보고를 팀이 직접 연결하는 대신, 자동화가 이슈를 Cloudflare OS에 전달함. Cloudflare OS가 오류를 Workflows 코드까지 추적하고 두 문제의 수정안을 제안함.
시작하기
wrangler.jsonc파일에서observability.issues.enabled를true로 설정함.- Cloudflare 대시보드에서 첫 자동화를 설정해 에이전트, 웹훅, 사고 관리 도구, 채팅 플랫폼 등 원하는 목적지로 이슈를 전송함.
- 에이전트가 설정을 처리하는 경우 새
cf명령줄 인터페이스(CLI)로 이슈를 확인하고 자동화를 만들 수 있음. 자세한 내용은 문서를 참고할 수 있음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요