监控是应用程序性能管理的一个重要方面。随着应用程序规模的扩大,确保它们平稳运行并持续跟踪系统运行状况变得势在必行。在微服务、分布式系统和云原生应用程序中,监控工具不仅仅是一个附加组件,而且是基础设施的关键部分。
用于监控现代系统的两种最流行的工具是 Prometheus 和 Grafana。这些工具通常用于收集、存储和可视化指标,帮助开发人员和运营团队检测问题、分析性能并保持系统高效运行。
监控对于在问题影响用户之前识别问题至关重要。无论您使用的是基于 Java 的后端、复杂的微服务环境还是任何其他系统,持续监控都可以提供以下见解:
应用程序性能:
跟踪关键性能指标,例如响应时间、请求和错误率。
系统健康状况:
监控服务器运行状况、CPU 使用情况、内存使用情况和磁盘空间,以确保基础设施以最佳状态运行。
警报:
为关键指标设置阈值和警报,以便在出现问题时通知您。
容量规划:
收集和分析历史数据可以帮助您规划应用程序的扩展。
Prometheus 和 Grafana 提供强大的解决方案来监控、可视化和分析系统和应用程序中的数据。
普罗米修斯
Prometheus 是一个开源监控和警报工具包,旨在提高可靠性和可扩展性。它专注于采集时序数据,支持多维数据采集,可以进行强大的查询和分析。 Prometheus 通过 HTTP 端点从目标收集指标并将其存储在时间序列数据库中。然后可以使用 Prometheus 的查询语言 PromQL 查询这些指标。
格拉法纳
Grafana 是一个用于监控和可观察性的开源平台。它允许用户可视化来自多个来源的时间序列数据,包括 Prometheus。 Grafana 能够创建仪表板、设置警报以及与各种数据源集成,这使其成为最流行的指标可视化工具之一。
Prometheus 共同收集指标,而 Grafana 以交互且具有视觉吸引力的方式显示它们。
在 Docker 中运行 Prometheus 和 Grafana 是一种简单有效的快速搭建监控环境的方法。让我们从在 Docker 中运行 Prometheus 开始。
第 1 步:在 Docker 中运行 Prometheus
您可以使用以下命令将 Prometheus 作为容器运行:
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
此命令将:
第 2 步:配置 Prometheus
如果需要将 Prometheus 配置为从特定端点(例如 Java 应用程序)抓取指标,则必须调整 Prometheus 配置文件。通过将其安装到容器中,您可以使用自定义的 prometheus.yml 文件运行 Prometheus。这是一个例子:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
这会将本地 prometheus.yml 文件挂载到容器中。启动 Prometheus 后,您可以访问 http://localhost:9090/ 访问 Prometheus 仪表板。
现在 Prometheus 正在运行,添加 Grafana 来可视化数据是时候了。
第 3 步:在 Docker 中运行 Grafana
Grafana 通过 Docker 部署起来很简单。运行以下命令启动 Grafana 容器:
在 Docker 中运行 Grafana
docker run -d -p 3000:3000 grafana/grafana-enterprise
Grafana 运行后,您可以通过 http://localhost:3000/login 访问 Web UI。默认登录凭据是:
第 4 步:连接 Prometheus 和 Grafana
现在 Prometheus 和 Grafana 都在运行,下一步就是连接它们。 Grafana 需要知道从哪里获取指标。以下是如何在 Grafana 中添加 Prometheus 作为数据源:
让我们创建一个简单的基于 Java 的项目,向 Prometheus 公开指标。我们将使用 Micrometer,这是一个基于 JVM 的应用程序的指标收集外观,它可以轻松地与 Prometheus 集成。
第 5 步:创建 Java 应用程序
将必要的依赖项添加到您的 pom.xml 文件中:
连接一切。
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
然后,在您的 Java 应用程序中,公开 Prometheus 可以抓取的端点。例如:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
此设置创建 Prometheus 可以抓取的端点/指标。它公开了 Micrometer 收集的指标,并以 Prometheus 格式提供。
第 6 步:向 Prometheus 公开指标
现在 Java 应用程序正在收集指标,我们需要告诉 Prometheus 从您的应用程序中抓取 /metrics 端点。更新您的 prometheus.yml 配置文件以包含目标:
docker run -d -p 3000:3000 grafana/grafana-enterprise
如果在同一台计算机上运行,请替换为 IP 地址或本地主机。 Prometheus 现在将从您的 Java 应用程序收集指标。
此时,您已经:
第 7 步:在 Grafana 中创建仪表板
要在 Grafana 中可视化数据:
您现在可以构建一个包含各种面板的仪表板,显示请求计数、响应时间和错误率等指标。
监控对于维持高可用性和性能至关重要。借助 Prometheus 和 Grafana 等工具,您可以轻松为 Java 应用程序设置高效的监控解决方案。
以上是Java 中的 Prometheus 和 Grafana 入门的详细内容。更多信息请关注PHP中文网其他相关文章!