Prometheus (소프트웨어)

Prometheus (software)
프로메테우스
Prometheus software logo.svg
초기 릴리즈2012년 11월 24일, 9년 전(2012-11-24)
안정된 릴리스
v2.36.0[1] / 2022년 5월 30일;7일 전(2022-05-30)
저장소github.com/prometheus/prometheus
기입처가세요
운영 체제크로스 플랫폼
유형시계열 데이터베이스
면허증.Apache 라이센스 2.0
웹 사이트프로메테우스이오

Prometheus는 이벤트 감시 [2]경보에 사용되는 무료 소프트웨어 애플리케이션입니다.HTTP 모델을 사용하여 구축된 시계열 데이터베이스에 실시간 메트릭을 기록하고 유연한 쿼리와 실시간 경보를 제공합니다.[3][4]이 프로젝트는 Go로 작성되어 Apache 2 License에 따라 라이선스되며 소스 코드GitHub에서 [5]이용할 수 있습니다.Kubernetes [6] Emborge와 함께 Cloud Native Computing Foundation의 단계별 프로젝트입니다.

역사

Prometheus는 2012년부터 [7]SoundCloud에서 개발되었으며, 당시 회사는 기존 측정 기준 및 모니터링 솔루션(StatsD Graphite 사용)이 고객의 요구를 충족시키지 못한다는 것을 알게 되었습니다.구체적으로는 Prometheus가 하나의 [8]툴로 구축한 다차원 데이터 모델, 운용의 심플성, 확장 가능한 데이터 수집, 강력한 쿼리 언어 등의 요구를 모두 충족시킬 수 있는 것을 확인했습니다.이 프로젝트는 처음부터 오픈 소스였고,[8][9] Boxever와 Docker 사용자들도 사용하기 시작했습니다.프로메테우스는 보그몬이 [10][11]구글에서 사용한 모니터링 도구에서 영감을 얻었다.

2013년까지 Prometheus는 [8]SoundCloud에서 프로덕션 모니터링을 위해 도입되었습니다.공식 발표는 2015년 [8]1월에 이루어졌다.

2016년 5월 Cloud Native Computing Foundation은 Kubernetes에 이어 Prometheus를 두 번째 배양 프로젝트로 승인했습니다.이를 알리는 블로그 게시물에는 이 툴이 디지털오션, 에릭슨, 코어OS, 위브웍스, 레드햇, 구글 [12]등 많은 기업에서 사용되고 있다고 적혀 있다.

프로메테우스 1.0은 2016년 [13]7월에 출시되었습니다.후속 버전은 2016년과 2017년까지 출시되었으며,[14] 2017년 11월에 Prometheus 2.0이 출시되었습니다.

2018년 8월 Cloud Native Computing Foundation은 Prometheus 프로젝트가 [6]종료되었다고 발표했습니다.

아키텍처

Prometheus를 사용하는 일반적인 감시 플랫폼은 다음과 같은 여러 [citation needed]도구로 구성됩니다.

  • 일반적으로 로컬 메트릭을 내보내기 위해 모니터링되는 호스트에서 실행되는 여러 내보내기입니다.
  • Prometheus는 메트릭을 중앙 집중화하고 저장합니다.
  • Alertmanager[15]: 이러한 메트릭을 기반으로 경고를 트리거합니다.
  • 대시보드를 제작하는 그라파나.
  • PromQL은 대시보드와 경고를 만드는 데 사용되는 쿼리 언어입니다.

데이터 저장소 형식

Prometheus 데이터는 메트릭 형태로 저장되며 각 메트릭은 참조 및 쿼리에 사용되는 이름을 가집니다.각 메트릭은 임의의 개수의 키=값 쌍(값 쌍)으로 드릴다운할 수 있습니다.라벨에는, 데이터 소스(데이터의 송신원서버)에 관한 정보, 및 HTTP 상태 코드(HTTP 응답에 관한 메트릭), 쿼리 방식(GET vs POST), 엔드 포인트 등, 그 외의 애플리케이션 고유의 상세 정보가 포함됩니다.임의의 라벨 목록을 지정하고 이를 바탕으로 실시간으로 조회할 수 있는 것이 프로메테우스의 데이터 [16][8][9]모델을 다차원이라고 부르는 이유입니다.

Prometheus는 데이터를 디스크에 로컬로 저장하므로 빠른 데이터 저장 및 빠른 [8]쿼리에 도움이 됩니다.원격 [17]스토리지에 메트릭을 저장할 수 있습니다.

데이터 수집

프로메테우스는 시계열의 형태로 데이터를 수집합니다.시계열은 풀 모델을 통해 구축됩니다.Prometheus 서버는 특정 폴링 빈도로 데이터 소스(exporter라고도 함) 목록을 쿼리합니다.각 데이터 소스는 Prometheus에 의해 쿼리된 엔드포인트에서 해당 데이터 소스에 대한 메트릭의 현재 값을 제공합니다.그런 다음 Prometheus 서버는 데이터 [8]소스에 걸쳐 데이터를 집계합니다.Prometheus에는 데이터 [18]소스로 사용해야 할 자원을 자동으로 검출하는 메커니즘이 많이 있습니다.

프롬QL

Prometheus는 사용자가 데이터를 선택하고 집계할 수 있는 자체 쿼리 언어 Prometheus Query Language(Prometheus 쿼리 언어)를 제공합니다.PromQL은 시계열 데이터베이스와 함께 작동하도록 특별히 조정되므로 시간 관련 쿼리 기능을 제공합니다.예를 들어 rate() 함수, 인스턴트 벡터 및 쿼리된 각 [19]시계열에 대해 많은 샘플을 제공할 수 있는 범위 벡터가 있습니다.Prometheus에는 PromQL 성분이 회전하는 4가지 메트릭 유형이 명확하게 정의되어 있습니다.4가지 타입이 있습니다.

  • 게이지
  • 계산대
  • 히스토그램
  • 요약

경보 및 감시

Prometheus에서 경보를 트리거하기 위해 특정 기간 동안 유지해야 하는 조건을 지정하는 경보 구성을 지정할 수 있습니다.경보가 트리거되면 Alertmanager 서비스로 전송됩니다.Alertmanager는 알림을 자동화하고 이메일, Slack 또는 PagerDuty와 [20]같은 알림 서비스에 알림을 전달하는 논리를 포함할 수 있습니다.Microsoft[21] Teams 등의 기타 메시징시스템은 Alertmanager Webhook Receiver를 외부 [22]통합 메커니즘으로 사용하여 설정할 수 있습니다.또한 Prometheus Alerts를 사용하여 Alert [23]Manager에서 타겟 설정을 하지 않아도 Android 기기에서 직접 경보를 수신할 수 있습니다.

대시보드

Prometheus는 대시보드 솔루션으로 의도된 것이 아닙니다.특정 쿼리를 그래프로 표시할 수 있지만 본격적인 대시보드 솔루션은 아니며 대시보드를 생성하기 위해 Grafana와 연계해야 합니다.이것은 설정이 [24]복잡하기 때문에 단점으로 지적되고 있습니다.

상호 운용성

프로메테우스는 화이트박스 감시를 선호한다.어플리케이션은 [25]Prometheus가 정기적으로 수집하는 내부 메트릭을 게시(내보내기)하는 것이 좋습니다.메트릭을 [26]제공하기 위해 다양한 응용 프로그램의 일부 내보내기 및 에이전트를 사용할 수 있습니다.Prometheus는 Graphite, StatsD, SNMP, JMX 및 CollectD와 같은 일부 모니터링 및 관리 프로토콜을 지원합니다.

Prometheus는 플랫폼의 가용성과 기본적인 [27]운용에 초점을 맞추고 있습니다.메트릭은 일반적으로 몇 주 동안 저장됩니다.장기 저장의 경우 메트릭을 원격 스토리지 [17]솔루션으로 스트리밍할 수 있습니다.

Open Metrics로의 표준화

Prometheus 엑스포 형식을 OpenMetrics로 [28]알려진 표준으로 홍보하기 위한 노력이 있습니다.일부 제품은 다음과 같은 형식을 채택했습니다.InflusionData의 TIC 제품군,[29] InflusionDB, Google Cloud [30]Platform [31]및 DataDog.

사용.

Prometheus는 개발처인 SoundCloud에서 시스템 [8]모니터링을 위해 사내에서 처음 사용되었습니다.Cloud Native Computing Foundation은 Prometheus를 사용하는 다른 회사의 많은 사례 연구를 보유하고 있습니다.여기에는 디지털 호스팅 서비스인 Digital Ocean,[32] 디지털 축제 Dream Hack,[33] 이메일 및 연락처 마이그레이션 서비스인 Shuttle Cloud [34]등이 포함됩니다.이와는 별도로 Pandora Radio는 Prometheus를 사용하여 데이터 [35]파이프라인을 감시하는 것을 언급했습니다.

GitLab은 Prometheus에[36] GitLab 메트릭을 내보내기 위한 Prometheus 통합 가이드를 제공하며 버전 9.0 이후[37] 기본적으로 활성화되어 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Github의 최신 릴리즈
  2. ^ "Overview". prometheus.io.
  3. ^ James Turnbull (12 June 2018). Monitoring with Prometheus. Turnbull Press. ISBN 978-0-9888202-8-9.
  4. ^ "Prometheus: From metrics to insight. Power your metrics and alerting with a leading open-source monitoring solution". Retrieved December 26, 2018.
  5. ^ "Prometheus". GitHub. Retrieved December 26, 2018.
  6. ^ a b Evans, Kristen (August 9, 2018). "Cloud Native Computing Foundation Announces Prometheus Graduation". Retrieved December 26, 2018.
  7. ^ Brian Brazil (9 July 2018). Prometheus: Up & Running: Infrastructure and Application Performance Monitoring. O'Reilly Media. p. 3. ISBN 978-1-4920-3409-4.
  8. ^ a b c d e f g h Volz, Julius; Rabenstein, Björn (January 26, 2015). "Prometheus: Monitoring at SoundCloud". SoundCloud.
  9. ^ a b "Monitor Docker Containers with Prometheus". 5π Consulting. January 26, 2015.
  10. ^ Murphy, Niall; Beyer, Betsy; Jones, Chris; Petoff, Jennifer (2016). Site Reliability Engineering:How Google Runs Production Systems. O'Reilly Media. ISBN 978-1491929124. Even though Borgmon remains internal to Google, the idea of treating time-series data as a data source for generating alerts is now accessible to everyone through those open source tools like Prometheus ...
  11. ^ Volz, Julius (4 September 2017). "PromCon 2017: Conference Recap" – via YouTube. I joined SoundCloud back in 2012 coming from Google...we didn't yet have any monitoring tools that that works with this kind of dynamic environment. We were kind of missing the way Google did its monitoring for its own internal cluster scheduler and we were very inspired by that and finally decided to build our own open-source solution.
  12. ^ "Cloud Native Computing Foundation Accepts Prometheus as Second Hosted Project". Cloud Native Computing Foundation. May 9, 2016. Retrieved December 26, 2018.
  13. ^ "Prometheus 1.0 Is Here". Cloud Native Computing Foundation. July 18, 2016. Retrieved December 26, 2018.
  14. ^ "New Features in Prometheus 2.0.0". Robust Perception. November 8, 2017. Retrieved December 26, 2018.
  15. ^ "Alertmanager". GitHub. 17 May 2022.
  16. ^ "Data model". Prometheus. Retrieved December 26, 2018.
  17. ^ a b "Integrations - Prometheus". prometheus.io.
  18. ^ "Prometheus: Collects metrics, provides alerting and graphs web UI". March 18, 2017. Retrieved December 26, 2018.
  19. ^ "Querying Prometheus". Retrieved November 4, 2019.
  20. ^ Dubey, Abhishek (March 25, 2018). "AlertManager Integration with Prometheus". Retrieved December 26, 2018.
  21. ^ Danuka, Praneeth (March 8, 2020). "Alerting for Cloud-native Applications with Prometheus". Retrieved October 18, 2020.
  22. ^ "Integrations Prometheus".
  23. ^ "Prometheus alerts - Apps on Google Play".
  24. ^ Ryckbosch, Frederick (July 28, 2017). "Prometheus monitoring: Pros and cons". Retrieved December 26, 2018.
  25. ^ Prometheus. "Instrumentation - Prometheus". prometheus.io.
  26. ^ "Exporters". prometheus.io.
  27. ^ Prometheus. "Prometheus - Monitoring system & time series database". prometheus.io.
  28. ^ "OpenMetrics". GitHub. 2018-11-13.
  29. ^ "Telegraf from InfluxData". GitHub. 2018-12-25.
  30. ^ "Announcing Stackdriver Kubernetes Monitoring".
  31. ^ "DataDogHQ".
  32. ^ Evans, Kristen (February 28, 2017). "Prometheus User Profile: How DigitalOcean Uses Prometheus". Cloud Native Computing Foundation. Retrieved December 26, 2018.
  33. ^ Evans, Kristen (August 24, 2016). "Prometheus User Profile: Monitoring the World's Largest Digital Festival – DreamHack". Cloud Native Computing Foundation. Retrieved December 26, 2018.
  34. ^ Evans, Kirsten (May 17, 2017). "Prometheus User Profile: ShuttleCloud Explains Why Prometheus Is Good for Your Small Startup". Cloud Native Computing Foundation. Retrieved December 26, 2018.
  35. ^ Haidrey, Ace (March 15, 2018). "Apache Airflow at Pandora". Engineering at Pandora. Retrieved December 26, 2018.
  36. ^ "GitLab Prometheus metrics". Retrieved December 26, 2018.
  37. ^ "GitLab 9.0 released with Subgroups and Deploy Boards". GitLab. 2017-03-22.

추가 정보

  • Russ, McKendrick (2015-12-15). Monitoring Docker : monitor your Docker containers and their apps using various native and third-party tools with the help of this exclusive guide!. Birmingham, UK. ISBN 9781785885501. OCLC 933610431.
  • JOSEPH., HECK (2018). KUBERNETES FOR DEVELOPERS use kubernetes to develop, test, and deploy your applications with the help of containers;use kubernetes to develop. [S.l.]: PACKT PUBLISHING. ISBN 978-1788830607. OCLC 1031909876.
  • 인용도서제목=확장성이 뛰어나 신뢰할 수 있는 서비스 작성자 패턴 및 패러다임=대화, Brendan isbn=9781491983614판=제1장소=Mincopol, CA oclc=1023861580일=2018-02-20}
  • Martin., Helmich (2017). Cloud Native programming with Golang Develop microservice-based high performance web apps for the cloud with Go. Andrawos, Mina., Snoeck, Jelmer. Birmingham: Packt Publishing. ISBN 9781787127968. OCLC 1020029257.
  • Alok, Shrivastwa (2018-02-23). Hybrid cloud for architects : build robust hybrid cloud solutions using AWS and OpenStack. Birmingham, UK. ISBN 9781788627986. OCLC 1028641698.
  • Kaewkasi, Chanwit (2016). Native Docker Clustering with Swarm. ISBN 978-1786469755.