diagnostic-channel
무엇인가요?
diagnostic-channel은 Node.js 앱에서 계측(instrumentation) 및 진단 메시지를 처리하기 위한 공유 채널을 제공합니다. 계측 패처(patchers)와 모듈 작성자들은 channel.publish(...)를 호출하여 이 채널에 메시지를 게시할 수 있으며, 이를 통해 저장소(storage) 및 모니터링 시스템으로 메시지를 전달하게 됩니다.
diagnostic-channel-publishers는 일반적인 Node.js 모듈에 대한 패치 세트를 제공하여 계측 데이터를 diagnostic-channel 채널에 게시합니다.
왜 필요한가요?
diagnostic-channel은 공유 메시지 버스를 제공함으로써, 여러 도구 및 APM(Application Performance Monitoring) 제공업체가 동일한 계측 패치를 재사용할 수 있도록 합니다. 저희는 공통 버스와 패치를 공유하는 것이 Node.js 커뮤니티가 모듈 작성자 및 도구 제공업체와 더 협력하여 수집된 데이터를 개선하고 증가시키는 데 도움이 될 것이라고 믿습니다. 궁극적으로 이는 우리 모두가 Node.js 개발자에게 더욱 유용한 통찰력을 제공하려는 진정한 목표를 달성하는 데 도움을 줄 것입니다.
console.log와 그 약점 외에도, 모듈 작성자와 심지어 핵심 기여자들조차도 자신들의 시스템과 모듈이 수집한 트레이스(traces), 메트릭(metrics) 및 기타 데이터를 공유할 믿을 만한 방법이 거의 없었습니다. Node.js의 Diagnostics WG는 이를 해결하기 위해 trace_events 지원, Inspector, 그리고 async_hooks를 포함하여 여러 노력을 진행하고 있습니다. 이 diagnostic-channel 프로젝트는 이러한 노력의 또 다른 일부입니다.
사용 방법
만약 모듈 작성자라면, 자신의 모듈에서 직접 공유 채널로 출력을 생성할 수 있습니다. 다른 사람의 모듈을 패치하는 경우, 계측을 위해 게시자(publisher)/패처(patcher)를 구현해야 합니다.
어느 경우든, 시작하려면 다음 단계를 따르세요:
- module에 diagnostic-channel 추가:
npm install --save diagnostic-channel.
모듈 내에서 가져와 사용합니다: const channel = require('diagnostic-channel').channel.
진단 메시지를 게시하거나 처리하는 데 사용하세요.
이 리포지토리의 퍼블리셔 패치(publisher patches) 세트를 사용하려면:
require('diagnostic-channel-publishers').enable()를 실행합니다.
다른 모듈을 위한 퍼블리셔/패처를 생성하는 경우, src/diagnostic-channel-publishers/src에 포함된 퍼블리셔 중 하나에서 시작하고 아래의 Contributing 섹션을 참고하세요.
라이선스 (License)
MIT. LICENSE를 참조하세요.
기여 (Contributing)
이 리포지토리에 기여하는 방법에 대한 자세한 내용은 기여 가이드를 참고하세요.
본 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여에는 사용자가 해당 기여물을 사용할 권리를 가지고 있으며 실제로 그 권리를 부여한다는 것을 선언하는 기여자 라이선스 계약(Contributor License Agreement, CLA)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com을 방문하세요.
풀 리퀘스트를 제출할 때, CLA-bot이 사용자가 CLA를 제공해야 하는지 자동으로 판단하고 PR을 적절하게 꾸며줍니다 (예: 레이블, 댓글). 단순히 봇이 제공하는 지침을 따르기만 하면 됩니다. 이 CLA를 사용하는 모든 리포지토리에서 단 한 번만 이 작업을 수행하면 됩니다.
본 프로젝트는 Microsoft Open Source Code of Conduct를 채택했습니다. 더 많은 정보는 Code of Conduct FAQ를 참조하거나, 추가 질문이나 의견이 있으면 [email protected]으로 문의하세요.