文章目录
- prometheus初识
- 简介
- 功能
- 指标
- 组件
- 架构+生态组件
prometheus初识
简介
- 简介内容来自于官网
- Prometheus是一个开源的系统监控和告警工具包,最初由SoundCloud开发。自2012年创立以来,许多公司和组织已经采用了Prometheus,并且该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,并独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。
- Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company. To emphasize this, and to clarify the project’s governance structure, Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.
- Prometheus将其指标作为时间序列数据进行收集和存储,即指标信息与记录的时间戳一起存储,还可以使用可选的键值对标签。
- Prometheus collects and stores its metrics as time series data, i.e. metrics information is stored with the timestamp at which it was recorded, alongside optional key-value pairs called labels.
功能
- Prometheus的主要功能包括:
- 使用度量名称和键值对标签识别的多维数据模型
- 灵活的查询语言PromQL,以利用这种多维度特性
- 不依赖分布式存储;单个服务器节点是自治的
- 时间序列的收集是通过HTTP的拉取模式进行的
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 支持多种图形和仪表盘模式
指标
- 指标是以数值形式的测量结果,可以用非技术术语来描述。时间序列一词指的是随时间记录变化的过程。不同应用程序需要测量的内容各不相同。对于一个Web服务器,可以是请求时间;对于一个数据库,可以是活动连接或活动查询的数量,等等。
- 指标在理解应用程序运行过程和发现问题方面起着重要作用。假设运行一个Web应用程序,发现它运行缓慢。例如,当请求数量很高时,应用程序可能变慢。如果有请求计数指标,可以确定原因并增加服务器数量来处理负载。
组件
- Prometheus生态系统由多个组件组成,其中许多是可选的:
- 主要的Prometheus服务器负责收集和存储时间序列数据
- 用于为应用程序代码提供仪表化的客户端库
- 用于支持短期作业的推送网关
- 针对HAProxy、StatsD、Graphite等服务的专用导出器
- 用于处理告警的警报管理器
- 各种支持工具
大多数Prometheus组件使用Go语言编写,使它们易于构建和部署为静态二进制文件。
架构+生态组件
- Prometheus架构和它的生态系统组件
- Prometheus:从已配置指标的作业中获取指标数据,可以直接获取或通过中间的推送网关获取短期作业的指标数据。它将所有获取的样本数据存储在本地,并对这些数据运行规则,以便从现有数据中进行聚合和记录新的时间序列,或生成告警。可以使用Grafana或其他API消费者来可视化收集到的数据。
- Prometheus适用场景:非常适用于记录任何纯数字的时间序列。它适用于以机器为中心的监控,也适用于高度动态的面向服务的架构监控。在微服务中,它特别的优势是对多维数据的收集和查询支持。
- Prometheus的设计目标是可靠性,用于在故障期间快速诊断问题的系统。每个Prometheus服务器都是独立的,不依赖于网络存储或其他远程服务。即使基础架构的其他部分出现故障,仍然可以依赖它,并且不需要设置复杂的基础设施来使用它。
- Prometheus不适用场景:Prometheus非常重视可靠性。即使在故障情况下,仍然可以查看有关系统的统计信息。如果需要百分之百的准确性,比如按请求计费,那么Prometheus不是一个好的选择,因为收集的数据可能不够详细和完整。在这种情况下,最好使用其他系统来收集和分析计费数据,并使用Prometheus进行其他的监控。
PagerDuty技术的核心是它的事件智能平台,它依托于一系列技术组件和算法来提高对IT运维管理的效率和响应速度。
- 事件处理和警报聚合:能够接收和解析来自多个监控工具和服务的警报。使用高级的聚合和去噪技术,只接收到相关和重要的警告信息,减少信息过载。
- 自动化响应:通过定义的事件响应流程和规则,并根据需求升级事件。
- 预测性分析:PagerDuty利用机器学习算法分析历史事件数据,帮助预测和预防潜在的系统问题。
- 跨平台集成:PagerDuty具有强大的集成能力。它能够与数百种监控、部署、协作和IT服务管理工具无缝集成。
- 用户界面和可视化:PagerDuty提供直观的用户界面和丰富的可视化工具,使得用户能够轻松管理警报、查看事件历史和分析性能指标。
- 安全性和可靠性:PagerDuty重视数据的安全性和平台的可靠性。采取多重安全措施和高可用性架构设计,确保服务的稳定性和用户数据的安全。
Grafana是一个功能强大的数据可视化和监控分析工具,它能够帮助用户更好地理解和分析各种数据,并通过可视化展示和警报功能,实现对系统和应用程序的实时监控和优化。 Grafana的特点包括:
- 多数据源支持:可以从不同的数据源中获取数据,并将其集成在一个仪表盘中展示。
- 可视化丰富:丰富的可视化选项,包括折线图、柱状图、仪表盘等,用户可以根据需要自由选择并进行定制。
- 高度可配置:用户可以自定义仪表盘、图表和警报规则,以适应各种监控和分析场景。
- 警报和通知功能:支持设置警报规则,并通过电子邮件、Slack等方式发送通知,以便及时响应和解决问题。