监控您的实例

如何从您的 Stackhero 实例获取 Prometheus 实时指标

Stackhero 帮助您以 Prometheus 格式从实例中获取实时指标。这种无缝集成使您可以轻松使用 Grafana 仪表板可视化数据,并通过 Prometheus(通过电子邮件、短信、Slack、Mattermost 等)在几分钟内为所有 Stackhero 服务触发警报。

Grafana 仪表板实时显示实例Grafana 仪表板实时显示实例

Stackhero 提供一个 "Service Discovery" HTTP 端点,以 Prometheus 格式返回实例的实时指标。

整体流程如下:

  1. 您的 Prometheus 服务器每 15 秒连接一次 Stackhero 的 API,以获取实例的实时指标。
  2. 当满足定义的条件时,您的 Prometheus 服务器通过 Alert Manager 触发警报。
  3. 您的 Grafana 服务器连接到您的 Prometheus 服务器,以显示您的 Stackhero 实例的仪表板。

首先,您需要生成一个令牌,您的 Prometheus 服务器可以使用它连接到 Stackhero 的 API。

  • 连接到您的 Stackhero 仪表板。
  • 在左侧菜单中,导航到 Prometheus
  • 点击 创建一个令牌
  • 添加描述,并在必要时限制 IP 访问(保留 0.0.0.0/0 以允许任何 IP)。
  • 复制生成的 Prometheus 配置。

在 Stackhero 仪表板中创建 Prometheus 令牌在 Stackhero 仪表板中创建 Prometheus 令牌

还没有 Prometheus 服务器? 使用 Stackhero,您可以在短短 2 分钟内启动一个 托管的 Prometheus

打开您的 prometheus.yml 配置文件,并在文件末尾添加 "stackhero" 任务(之前生成的)。

以下是一个配置示例:

  - job_name: "stackhero"
    scheme: "https"
    basic_auth:
      username: "<ORGANIZATION_ID>"
      password: "<TOKEN>"
    http_sd_configs:
    - url: "https://api.stackhero.io/v1/prometheus/targets"
      refresh_interval: "15s" # 不要设置为少于 15 秒!
      basic_auth:
        username: "<ORGANIZATION_ID>"
        password: "<TOKEN>"

导航到您的 Prometheus 仪表板,进入 Status > Service Discovery。您应该看到一个注册的 "stackhero" 服务发现条目。

Prometheus 仪表板显示 Stackhero 服务发现Prometheus 仪表板显示 Stackhero 服务发现

接下来,进入 Status > Targets。您应该看到每个 Stackhero 实例的一个端点。

Prometheus 仪表板显示 Stackhero 目标Prometheus 仪表板显示 Stackhero 目标

恭喜!您的 Prometheus 服务器现在自动获取所有服务的实时指标。

还没有 Grafana 服务器? 使用 Stackhero,您可以在短短 2 分钟内启动一个 托管的 Grafana

您可以利用 Grafana 中的预配置仪表板来显示您的实例指标。

  1. 在 Grafana 的 Web 界面中,进入 Create > Import
  2. Import via grafana.com 部分,将 ID 设置为 1860 并点击 Load 按钮。
  3. 在下一页,选择您的 Prometheus 数据源并点击 Import

Grafana 将生成一个仪表板,立即显示从 Prometheus 获取的数据!

Grafana 仪表板实时显示实例Grafana 仪表板实时显示实例

在屏幕左上角,您可以通过点击 host 列表选择要查看的实例。

在 "host" 列表中选择实例在 "host" 列表中选择实例

恭喜,您现在可以实时监控所有实例!