요약: 효과적인 알림 시스템은 실제 문제가 발생했을 때 적절한 시점에 관련 담당자에게 이를 알리고, 즉시 조치를 취할 수 있도록 충분한 맥락을 제공합니다. 가장 중요한 원칙은 다음과 같습니다: 원인(내부 지표)보다는 증상(사용자에게 미치는 영향)에 대해 알림을 보내고, 모든 알림이 실행 가능한 조치로 이어지도록 하며(취할 조치가 없다면 알림으로 삼아서는 안 됨), 불필요한 알림을 과감하게 줄이고(알림 과다로 인해 실제 사고를 놓칠 수 있음), 맥락(무엇이 잘못되었는지, 심각도는 어느 정도인지, 누가 영향을 받았는지, 어떻게 대처해야 하는지)을 제공해야 합니다. 블록체인 애플리케이션의 경우, 알림은 노드 동기화 지연, 가스 가격 급등, 거래 확인 지연, 블록 재구성 등 체인 특유의 상황도 포괄해야 합니다.
간단한 설명
경보 시스템은 모니터링 데이터와 사람의 조치 사이를 연결하는 가교 역할을 합니다. 모니터링 시스템은 수천 개의 지표와 수백만 개의 로그 항목을 수집합니다. 경보 시스템은 이 수많은 신호 중에서 어떤 것이 새벽 3시에 누군가를 깨워야 할 만큼 중요한지 판단합니다. 이를 제대로 처리하면, equipe 를 통해 사용자가 알아차리기 전에 문제를 포착할 수 있습니다. 반대로 잘못 처리하면, 실제 사고가 수많은 잡음(경보가 너무 많음) 속에 묻히거나, 사용자가 불만을 터뜨릴 때까지 심각한 문제가 발견되지 않는(경보가 너무 적음) 상황이 발생합니다.
잘 조정된 알림 시스템의 목표는 ‘예상치 못한 상황이 전혀 발생하지 않는 것’입니다. 모든 운영 사고 발생 전에는 반드시 알림이 발생해야 하며, 모든 알림은 실제(또는 임박한) 사고보다 먼저 발생해야 합니다. 실제 문제와 무관하게 발령되는 알림은 운영 담당자( equipe )로 하여금 해당 알림을 무시하도록 만듭니다. 알림 없이 발생하는 문제는 모니터링에 허점이 있음을 의미합니다.

모니터링과 알림의 차이점은 무엇인가요?
모니터링과 알림은 관련이 있지만 별개의 개념입니다. 모니터링은 시스템의 상태를 나타내는 메트릭, 로그, 트레이스를 지속적으로 수집하는 과정입니다. 알림은 그 위에 위치한 계층으로, 이러한 신호 중 어떤 것이 사람의 대응이 필요한지 판단하고 이를 적절한 담당자에게 전달하는 역할을 합니다. 알림 없이 모니터링만 할 수는 있지만, 그 기반이 되는 훌륭한 모니터링 없이는 효과적인 알림을 구현할 수 없습니다. 이와 관련된 데이터 측면에 대해서는 블록체인 인프라 모니터링 및 더 광범위한 블록체인 가시성(observability) 관행을 참고하시기 바랍니다.
원인이 아닌 증상에 주목하라
알림 설정에서 가장 중요한 원칙은 원인(내부에서 발생하는 현상)보다는 증상(사용자가 경험하는 현상)을 기준으로 알림을 설정하는 것입니다. 증상 기반 알림은 사용자 관점에서 문제가 발생했을 때 발동됩니다. 원인 기반 알림은 사용자에게 영향을 미치는지 여부와 관계없이 내부 지표가 임계값을 초과할 때 발동됩니다.
“노드 CPU 사용량이 90%를 초과함”과 같은 원인 기반 알림은 CPU를 많이 사용하지만 사용자 경험에는 영향을 미치지 않는 정상적인 배치 처리 작업 중에도 발동될 수 있습니다. 이러한 알림은 불필요한 알림을 발생시켜 알림 시스템에 대한 신뢰도를 떨어뜨립니다. "p99 RPC 응답 시간이 5분 이상 500ms를 초과함"과 같은 증상 기반 알림은 원인이 높은 CPU 사용량, 동기화 문제, 네트워크 정체 등 무엇이든 상관없이 사용자가 실제로 응답 지연을 경험할 때만 발생합니다.
그렇다고 해서 내부 지표를 절대 모니터링해서는 안 된다는 뜻은 아닙니다. 내부 지표는 대시보드, 추세 분석, 사고 발생 후 조사에 유용합니다. 하지만 사용자 경험에 직접적인 영향을 미치는 경우를 제외하고는 알림을 발생시켜서는 안 됩니다. 알림은 실제 사용자에게 문제가 발생했거나 곧 발생할 것임을 나타내는 신호에만 제한적으로 사용해야 합니다.
증상 기반 경보와 원인 기반 경보의 차이점은 무엇인가요?
증상 기반 알림은 사용자가 실제로 겪는 현상에 따라 발령되는 반면, 원인 기반 알림은 사용자에게 영향을 미칠 수도 있고 미치지 않을 수도 있는 내부 지표에 따라 발령됩니다. 아래 표에서는 이 두 가지를 비교하여, 어떤 신호는 담당자에게 알림을 보내야 하고 어떤 신호는 대시보드에 표시해야 할지 결정할 수 있도록 했습니다.
양상 | 증상 기반 알림 | 원인 기반 알림 |
|---|---|---|
트리거 켜기 | 사용자에게 미치는 영향 | 내부 지표 임계값 |
예시 | p99 RPC 지연 시간이 5분 동안 500ms를 초과함 | 노드 CPU 사용률이 90%를 초과함 |
오양성 위험 | 낮음 | 높음 |
다음 용도로 사용하는 것이 가장 좋습니다. |
알림을 실질적인 조치로 연결하기
모든 알림에는 명확하고 문서화된 대응 절차가 마련되어 있어야 합니다. 알림이 발생했을 때 당직 엔지니어의 첫 반응이 “이걸 어떻게 처리해야 하지?”라면, 그 알림은 실행 가능한 알림이 아닙니다.
각 알림에는 문제점(증상에 대한 명확한 설명), 정량적 정보(초과된 임계값 및 현재 값), 범위(영향을 받는 endpoint, 체인 또는 서비스), 지속 시간(해당 상태가 얼마나 오래 지속되었는지) 및 런북 링크(문제 진단 및 해결을 위한 단계별 지침)가 포함되어야 합니다.
런북은 각 경보에 필수적인 문서입니다. 런북은 대응 담당자가 경보의 일반적인 원인, 근본 원인을 파악하기 위한 진단 단계, 각 일반적인 원인에 대한 해결 조치, 그리고 에스컬레이션 기준(언제 다른 담당자에게 알릴지)을 단계별로 파악할 수 있도록 안내해야 합니다. 체계적으로 관리된 런북은 사고 대응 시간을 획기적으로 단축하고, 경험이 적은 equipe 구성원들도 당직 업무를 효과적으로 수행할 수 있도록 돕습니다.
경고 알림의 잡음 줄이기
경보 피로는 효과적인 경보 시스템에 있어 가장 큰 위협입니다. 팀이 하루에 수십 건의 경보를 수신하는데, 그중 대부분이 오경보이거나 우선순위가 낮은 경우, 팀원들은 중요한 경보를 포함해 모든 경보를 무시하기 시작합니다.
의료 분야(경보 피로가 환자 안전 문제로 인정되고 있는 분야)의 연구에 따르면, 경보의 최대 99%가 오경보일 수 있으며, 이로 인해 의료진이 경보를 비활성화하거나 무시하게 되는 것으로 나타났습니다.
노이즈를 줄이기 위한 전략으로는 빈번하게 발생하지만 조치할 필요가 없는 알림의 임계값을 높이는 것, 지속 시간 요건을 추가하는 것(순간적인 급증 시 알림이 발생하지 않도록 하고, 상태가 5분 이상 지속될 때만 알림을 발송), 관련 알림을 중복 제거하는 것(동일한 제공업체의 5개 엔드포인트가 모두 느린 경우, 5개의 알림 대신 1개의 알림만 발송), 심각도 수준을 도입하는 것 (중요 경보는 즉시 알림을 보내고, 경고 경보는 업무 시간 중에 검토할 수 있도록 Slack 채널로 전송), 그리고 지속적으로 무시되거나 조치 없이 해결되는 경보를 정기적으로 검토하고 비활성화하는 것이 있습니다.
유용한 방법 중 하나는 지난 한 달 동안 발생했던 모든 경보를 검토하며 “이 경보가 유용한 조치로 이어졌는가?”라고 자문해 보는 것입니다. 대답이 지속적으로 ‘아니오’라면, 해당 경보를 제거하거나 재조정하십시오.
블록체인 전용 알림
블록체인 애플리케이션에는 표준 애플리케이션 및 인프라 알림 외에도 체인 수준의 상황을 포괄하는 알림이 필요합니다.
노드 동기화 지연은 사용자의 노드(또는 제공업체의 노드)가 체인 끝부분보다 설정된 블록 수 이상 뒤처질 때 경고를 발생시켜야 합니다. Ethereum 의 경우, 3블록 이상 뒤처지면 경고를 발생시킵니다. Solana 의 경우, 10슬롯 이상 뒤처지면 경고를 발생시킵니다. 동기화 지연이 발생하면 애플리케이션이 오래된 데이터를 제공하게 됩니다.
가스 가격 급등은 트랜잭션을 제출하는 모든 애플리케이션에 영향을 미칩니다. 기본 수수료가 사용 사례에 있어 트랜잭션 비용이 경제적으로 부담스러워지는 임계값을 초과할 경우 경고를 표시하십시오. 이를 통해 애플리케이션은 사용자에게 경고를 보내거나, 긴급하지 않은 트랜잭션을 연기하거나, 가스 매개변수를 선제적으로 조정할 수 있습니다.
제출된 트랜잭션이 예상된 시간 내에 확인되지 않으면 ‘트랜잭션 정체’ 알림이 발생합니다. 정상적인 상황에서 Ethereum 에서 10분 이상 대기 중인 트랜잭션은 가스 가격이 부족할 가능성이 높으므로, 수수료를 더 높여 다시 제출해야 합니다.
재구성 감지 알림은 애플리케이션이 의존하는 체인에서 블록 재구성이 발생할 때 이를 알려줍니다. 데이터 파이프라인이 최종 확정(finality)을 기다리지 않고 체인 끝부분의 블록을 처리하는 경우, 재구성이 발생하면 최근에 처리된 데이터가 부정확할 수 있으므로 수정이 필요합니다.
프로바이더 상태 알림은 RPC 프로바이더의 전반적인 상태를 모니터링합니다. 프로바이더의 오류 발생률이 임계값을 초과하여 급증할 경우, 애플리케이션은 백업 프로바이더로 전환하거나 서비스 품질이 저하된 상태 mode 로 전환할 준비가 되어 있어야 합니다.

어떤 블록체인 조건이 경보를 유발해야 합니까?
일반적인 인프라 알림 외에도, 블록체인 애플리케이션에는 체인 상태에 맞춰 조정된 알림이 필요합니다. 아래 표에는 일반적인 조건과 예시 임계값이 나열되어 있습니다. 리오그(reorg)와 같은 조건은 특별한 처리가 필요하며, 이에 대해서는 ‘블록체인 리오그란 무엇인가’에서 다루고 있습니다. 또한 동기화 지연은 노드의 안정성과 직접적인 관련이 있습니다.
상태 | 임계값 예시 | 그것이 왜 중요한가 |
|---|---|---|
노드 동기화 지연 | 3개 이상의 블록 (Ethereum) 또는 10개 이상의 슬롯 (Solana) | 오래된 데이터를 제공하고 있습니다. |
휘발유 가격 급등 | Base 경제적 한도를 초과하는 수수료 | 거래 비용이 너무 많이 든다 |
정지된 트랜잭션 | 10분 이상 대기 중 | 가격이 낮게 책정된 것으로 보이며 재제출이 필요합니다. |
당직 운영 모범 사례
경보 시스템은 누군가가 경보에 신속하고 유능하게 대응할 때만 효과를 발휘합니다. 건전한 당직 체계를 구축하려면, equipe 에 걸쳐 부담을 공정하게 분배하는 순환 근무 일정, 복잡한 문제가 신속히 적절한 전문가에게 전달될 수 있도록 하는 명확한 에스컬레이션 절차, 당직 엔지니어가 대시보드, 로그 및 배포 도구에 즉시 접근할 수 있도록 하는 적절한 도구, 시스템과 알림 구성 모두를 개선할 수 있는 사고 후 검토, 그리고 당직 근무의 실질적인 비용을 인정하는 보상 또는 휴가 정책이 필요합니다.

경고 기능과 고가용성은 어떻게 연동되나요?
알림 기능은 문제가 발생했을 때 이를 알려주지만, 고가용성은 대응하는 동안에도 서비스가 계속 운영되도록 보장합니다. 이 두 가지는 서로를 보완합니다. 즉, 백업 시스템이 즉시 업무를 인수할 준비가 되어 있을 때 제공자 상태 알림이 가장 유용합니다. 알림 기능을 고가용성 설계, 자동화된 장애 조치, 그리고 신속한 대응을 가능하게 하는 인프라 중복성과 결합하십시오.
Quicknode 가 효과적인 알림 기능을 구현하는 방법
Quicknode의 내장 분석 기능은 블록체인 인프라 알림 기능을 위한 지표 기반을 제공합니다. 대시보드에서는 요청량, 응답 지연 시간, 오류율 및 메서드별 세부 내역을 확인할 수 있으며, 이를 바탕으로 알림 임계값을 설정할 수 있습니다. 맞춤형 알림 인프라를 갖춘 팀의 경우, Quicknode 의 전용 Clusters 에서 Prometheus 호환 지표를 내보낼 수 있으며, 이 지표는 Alertmanager, Grafana Alerts, PagerDuty 또는 스택 내의 모든 알림 시스템과 직접 연동됩니다.
Quicknode Streams 데이터 파이프라인 문제(전달 누락, 처리 지연, 대상 오류 등)에 대한 경고를 발령할 수 있는 전달 상태 지표를 제공합니다. 이를 RPC 계층 경고 기능과 결합하면, 팀은 실시간 API 액세스 및 스트리밍 데이터 인프라 전반에 걸쳐 포괄적인 모니터링을 수행할 수 있습니다.
추가 자료
메트릭 vs 로그 vs 트레이스 - Quicknode 문서
블록체인 인프라 모니터링 - Quicknode 용어집
Quicknode Core API
Quicknode 전용 Clusters
자주 묻는 질문
어떤 요소가 경보를 ‘조치가 필요한’ 것으로 만드는가?
대응 담당자가 정확히 무엇을 해야 할지 알 때 비로소 해당 경보는 실행 가능한 것이 됩니다. 경보에는 증상, 초과된 임계값과 현재 값, 영향을 받은 범위, 상태가 지속된 기간, 그리고 진단 및 해결 단계가 포함된 런북으로 연결되는 링크가 명시되어야 합니다.
경고 피로란 무엇인가요?
경보 피로란, equipe 가 너무 많은 경보(특히 오경보)를 수신하여 중요한 경보까지 포함해 모든 경보를 무시하기 시작하는 현상을 말합니다. 임계값을 높이고, 지속 시간 요건을 추가하며, 중복 경보를 제거하고, 심각도 등급을 적용하는 등의 조치를 통해 경보 피로를 줄일 수 있습니다.
CPU 사용량에 대해 경고를 설정해야 할까요?
일반적으로 페이지 알림으로 설정하지는 않습니다. CPU는 원인 기반 지표로, 사용자에게 영향을 주지 않으면서도 정상적인 작업 중에 수치가 급증하는 경우가 많습니다. 이 지표는 대시보드에 표시해 두고, 대신 오류율 증가나 지연 시간 증가와 같은 사용자에게 직접적인 영향을 미치는 증상이 나타날 때 페이지 알림을 설정하세요.
블록체인 재구성(reorg)을 어떻게 감지하나요?
의존하는 체인에서 리오그 감지 기능을 구성하고, 리오그가 대기 중인 확인 횟수보다 더 깊게 발생할 경우 경고를 발령하십시오. 파이프라인이 블록체인의 최상단(tip)에서 블록을 처리하는 경우, 리오그는 최근 데이터에 수정이 필요함을 의미합니다. 관련 위험 요소에 대해서는 일반적인 블록체인 장애 유형을 참조하십시오.
경보에는 어떤 심각도 등급을 적용해야 할까요?
간단하면서도 효과적인 모델은 두 단계로 구성됩니다. 중대한 경보의 경우 즉시 당직자에게 알림을 보내고, 경고 경보는 업무 시간 중에 검토할 수 있는 채널로 전달됩니다. 이를 통해 알림은 진정으로 긴급한 사람의 대응이 필요한 문제에만 사용되도록 할 수 있습니다.