使用 Prometheus 和 Grafana 监控 Golang 应用

本指南教你如何容器化 Golang 应用并使用 Prometheus 和 Grafana 对其进行监控。

致谢

Docker 感谢 Pradumna Saraf 对本指南的贡献。

概览

为了确保你的应用按预期工作,监控非常重要。最流行的监控工具之一是 Prometheus。Prometheus 是一个开源的监控和警报工具包,旨在提供可靠性和可伸缩性。它通过抓取(scraping)被监控目标的 HTTP 度量端点来收集度量数据。要可视化度量数据,你可以使用 Grafana。Grafana 是一个用于监控和可观测性的开源平台,无论你的度量数据存储在哪里,它都可以让你查询、可视化、发出警报并理解它们。

在本指南中,你将创建一个带有某些端点的 Golang 服务器,以模拟真实世界的应用。然后,你将使用 Prometheus 暴露(expose)服务器的度量数据。最后,你将使用 Grafana 可视化这些度量数据。你将容器化 Golang 应用,并使用 Docker Compose 文件连接所有服务:Golang、Prometheus 和 Grafana。

你将学到什么?

  • 创建一个带有自定义 Prometheus 度量数据的 Golang 应用。
  • 容器化 Golang 应用。
  • 使用 Docker Compose 运行多个服务并将它们连接起来,以使用 Prometheus 和 Grafana 监控 Golang 应用。
  • 使用 Grafana 控制面板可视化度量数据。

前提条件

  • 本指南假设你对 Golang 有很好的理解。
  • 你必须熟悉 Prometheus 以及如何在 Grafana 中创建控制面板。
  • 你必须熟悉 Docker 的基本概念,例如容器(containers)、镜像(images)和 Dockerfile。如果你是 Docker 的新手,可以从Docker 基础知识指南开始学习。

下一步

你将创建一个 Golang 服务器并使用 Prometheus 暴露度量数据。

模块

  1. 了解应用

    学习如何创建 Golang 服务器以向 Prometheus 注册度量数据。

  2. 容器化你的应用

    学习如何容器化 Golang 应用。

  3. 使用 Docker Compose 连接服务

    学习如何使用 Docker Compose 连接服务以使用 Prometheus 和 Grafana 监控 Golang 应用。

  4. 开发你的应用

    学习如何使用 Docker 开发 Golang 应用。