Laravel 큐 모니터링 도구를 만들었습니다. 작업이 실제로 무엇을 하는지 몰라서 지쳤습니다

발행: (2026년 4월 20일 AM 01:12 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

왜 더 나은 큐 가시성이 필요했는가

어느 순간 Laravel 큐에서 무슨 일이 일어나고 있는지 제대로 이해하지 못하고 있다는 걸 깨달았다.

  • 작업이 실행되고 있다
  • 워커가 살아 있다
  • 로그가 어딘가에 존재한다

하지만 간단한 질문에 답하려고 하면 벽에 부딪힌다.

  • 이 작업이 실제로 해야 할 일을 했는가?
  • 아니면 단순히 “성공적으로 완료”됐을 뿐인가?
  • 어디서 조용히 깨지는가?

가장 짜증나는 부분은 무언가 조용히 실패하는 경우다: 작업이 실행되고, 오류를 내지 않으며, 성공으로 끝났지만 실제로는 아무 일도 하지 않는다. 처음엔 드물다고 생각했지만 파고들어 보니 여러 사례가 있었다. 이를 발견하게 된 계기는 실행 시간을 보는 것이었다—보통 작업은 ~500 ms가 걸리지만, 가끔 5 ms에 끝나는 경우가 있었고, 이는 의심스러웠다. 이런 빠른 완료는 “성공”했지만 사실상 아무 것도 하지 않는 작업이었다.

내가 원했던 것

무거운 설정 없이 큐 시스템을 명확하고 간단하게 볼 수 있는 화면:

  • 지금 무슨 일이 일어나고 있는가?
  • 무엇이 실패하고 있는가?
  • 무엇이 이상해 보이는가?

실용적인 요구 사항:

  • 모든 재시도 보기
  • 실패 원인 파악
  • 반복되는 오류 그룹화
  • 하나의 작업이 아니라 여러 작업을 재시도
  • 때때로 페이로드를 수정하고 다시 실행

그리고 물론 알림:

  • Slack
  • Webhook
  • 중요한 이슈에 대한 PagerDuty

해결책: yammi-jobs-monitoring-laravel

이 모든 기능을 제공하는 작은 Laravel 패키지를 만들었다.

설치

composer require romalytar/yammi-jobs-monitoring-laravel
php artisan migrate

사용법

설치 후 모니터링 UI를 연다:

/jobs-monitor

무거운 설정 없이 바로 작동한다.

UI가 보여주는 내용

작업 상세

어떤 작업이든 열어 보면:

  • 모든 시도 횟수
  • 오류 (있는 경우)
  • 각 시도의 실행 시간

단순히 “실패 / 성공” 플래그보다 훨씬 많은 인사이트를 제공한다.

기본 통계

  • 가장 많이 실패하는 작업
  • 가장 느린 작업
  • 재시도 비율

실패 작업 (DLQ) 관리

  • 재시도
  • 편집 후 재시도 (JSON 페이로드)
  • 일괄 작업

오류 그룹화

동일한 스택 트레이스를 일일이 스크롤하는 대신, 실패가 그룹화되어 같은 이슈에서 발생한 많은 오류를 한눈에 파악할 수 있다.

이상 감지

작업이 갑자기:

  • 훨씬 느려지거나, 또는
  • 의심스러울 정도로 빨리 완료되면

플래그가 지정된다. “너무 빠른” 경우는 종종 조용한 실패를 의미한다.

추가 기능

  • 워커 하트비트 (워커가 사라지는 경우 감지)
  • 스케줄된 작업 모니터링
  • Slack, Webhook, PagerDuty 등 알림

피드백 요청

사용해 본 사람들의 의견을 듣고 싶다:

  • 무엇이 빠졌는가?
  • 무엇이 불필요한가?
  • 실제 프로젝트에서 무엇이 잘 작동하는가?

스크린샷

Jobs monitor screenshot

저장소

소스 코드는 여기서 확인할 수 있다:

https://github.com/RomaLytar/yammi-jobs-monitoring-laravel

0 조회
Back to Blog

관련 글

더 보기 »

우와 (aka 시맨틱 인텐트)

원본 시도 php $t = tryCarbonPostMeta'options', $p->ID ->bindfunction Lst $l { return $l->filterfunction array $k { return $k'price' !== ''; } ->tryHead;...