Graphite는 확장성이 뛰어난 실시간 그래프 시스템이자 기업 수준의 모니터링 도구입니다. 실시간 웹사이트 정보 수집 및 통계 수행에 사용되며, 다양한 웹사이트 서비스 운영 현황 정보를 수집할 수 있습니다.
누가 그래파이트를 사용해야 합니까?
장기간에 걸쳐 숫자 값을 추적하려는 사람. 시간이 지남에 따라 변할 수 있는 숫자가 있고 시간에 따라 해당 값을 그래프로 표시하려는 경우 Graphite가 귀하의 요구 사항에 적합할 수 있습니다.
특히 Graphite는 숫자 시계열 데이터를 처리하도록 설계되었습니다. 예를 들어, Graphite는 시간이 지남에 따라 변하는 숫자이기 때문에 주가를 그래프로 표시하는 데 적합합니다. 몇 개의 데이터 포인트이든 수천 대의 서버에서 얻은 수십 개의 성능 지표이든 상관없이 Graphite가 적합합니다. 보너스로, 이러한 항목의 이름을 미리 알 필요가 없습니다(누가 그렇게 큰 구성을 유지하고 싶습니까?). 메트릭 이름, 타임스탬프 및 값만 보내면 Graphite가 나머지를 처리합니다.
Graphite는 얼마나 확장 가능합니까?
CPU 관점에서 Graphite는 프런트엔드와 백엔드 모두에서 수평으로 확장됩니다. 즉, 단순히 더 많은 머신을 추가하여 더 많은 처리량을 얻을 수 있다는 의미입니다. 또한 내결함성도 있습니다. 즉, 백엔드 머신이 손실되면 데이터 손실이 최소화되며(해당 머신이 메모리에 캐시한 내용에 관계없이) 로드를 처리할 만큼 남은 용량이 충분하다면 시스템이 중단되지 않습니다.
I/O 관점에서 로드 시 Graphite는 다양한 파일에 대해 많은 작은 I/O 작업을 매우 빠르게 수행합니다. 이는 RRD(drraw, Cacti, Centreon 등) 위에 구축된 도구의 수와 유사하게 Graphite로 전송된 각각의 서로 다른 메트릭이 자체 데이터베이스 파일에 저장되기 때문입니다. 실제로 Graphite는 새로운 스토리지 엔진이 필요한 근본적인 제한이 발생할 때까지 처음에는 스토리지에 RRD를 사용했습니다.
고용량(분당 수천 개의 서로 다른 메트릭이 업데이트됨)에는 우수한 RAID 어레이 및/또는 SSD가 거의 필요합니다. 디스크가 발생하는 많은 수의 작은 쓰기(데이터 포인트당 몇 바이트에 불과하지만 대부분의 표준 디스크는 초당 수천 개가 넘는 I/O 작업을 처리할 수 없음)를 따라잡을 수 없는 경우 소형), Graphite의 백엔드 수신 데이터가 캐시됩니다. 이런 일이 발생하면 Graphite의 데이터베이스 엔진은 Carbon이 한 번에 여러 데이터 포인트를 쓸 수 있도록 허용하여 쓸 수 있을 때까지 초과 데이터를 메모리에 캐시하는 대신 전체 처리량을 증가시킵니다.
Graphite는 이러한 기능을 크게 변경할 수 있는 대체 스토리지 백엔드도 지원합니다.
차트는 얼마나 실시간인가요?
매우 실시간입니다. 로드가 많은 경우에도 시간 간격당 들어오는 메트릭 수가 스토리지 시스템이 I/O 작업을 수행할 수 있는 속도보다 훨씬 크고 많은 수의 데이터 포인트가 스토리지 파이프라인에 캐시되는 경우(이전 질문 설명 참조) ) , Graphite는 여전히 실시간 그래프를 그릴 수 있습니다. 비결은 Graphite 웹앱이 그래프 그리기 요청을 받으면 디스크와 사전 스토리지 캐시(백엔드 서버가 여러 개인 경우 캐시가 배포될 수 있음)에서 데이터를 검색하고 두 데이터 소스를 결합한다는 것입니다. 실시간 그래프를 생성하기 위해 결합됩니다.
이미 Graphite를 사용하고 있는 사람은 누구입니까?
Graphite는 Orbitz에서 내부적으로 개발되었으며, 애플리케이션 지표, 데이터베이스 지표, 판매 등을 포함한 다양한 주요 운영 데이터를 시각화하는 데 사용됩니다. 이 글을 쓰는 시점에서 Orbitz의 생산 시스템은 고속 SAN의 niagra-2 Sun 서버 두 대에서 실행되면서 분당 약 160,000개의 서로 다른 측정항목을 처리할 수 있습니다.
흑연은 무엇으로 쓰여 있나요?
Graphite 웹앱은 Django 웹 프레임워크를 기반으로 구축되었으며 ExtJS javascript GUI 툴킷을 사용합니다. 그래픽 렌더링은 Cairo 그래픽 라이브러리를 사용하여 수행됩니다. 백엔드와 데이터베이스는 순수 Python으로 작성되었습니다.
누가 Graphite를 작성하고 유지 관리합니까?
Graphite는 원래 Orbitz의 Chris Davis가 개발했습니다. Orbitz는 오랫동안 오픈 소스 커뮤니티의 일부였으며 내부적으로 개발된 다양한 제품을 출시했습니다.
Graphite는 현재 Graphite-Project GitHub 조직의 자원 봉사 팀에 의해 개발되었습니다.