跳到主要内容

使用 Datadog 监控 APISIX 指标

随着 IT 基础设施和系统复杂性的增加,持续监控已成为任何 IT 运营的重要组成部分,以提高系统可靠性并避免代价高昂的停机时间。

Datadog 是一个云监控平台,为指标、日志和追踪提供统一的解决方案。该平台提供了许多预定义的仪表板模板,并允许灵活自定义以满足复杂的数据分析和可视化需求。

本指南将引导你完成使用容器化 Datadog 代理将 Datadog 与 APISIX 集成的过程。你将在 APISIX 中启用 datadog 插件以将指标导出到代理,从而允许你在 Datadog 中监控 APISIX 指标,并使用它们创建额外的监控、警报和分析。


APISIX 和 Datadog 架构图

前置条件

  • 安装 Docker
  • 安装 cURL 以向服务发送请求进行验证。
  • 按照 快速入门教程 在 Docker 或 Kubernetes 中启动一个新的 APISIX 实例。
  • 创建一个 Datadog 帐户 并记下站点和 API 密钥。

启动 Datadog 代理

Datadog 代理 从受监控对象收集事件和指标并将其发送到 Datadog,你可以在其中进一步分析你的监控和性能数据。

启动 Datadog 代理:

docker run -d \
--name dogstatsd-agent \
// Annotate 1
-e DD_API_KEY=35ebe12345678dec56218930b79fdb4cf \
// Annotate 2
-e DD_SITE="us5.datadoghq.com" \
// Annotate 3
-e DD_HOSTNAME=apisix.quickstart \
// Annotate 4
-e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
-p 8125:8125/udp \
datadog/dogstatsd:latest

DD_API_KEY: 替换为你的 API 密钥。

DD_SITE: 替换为你的 Datadog 站点。

DD_HOSTNAME: 替换为你的主机名。

DD_DOGSTATSD_NON_LOCAL_TRAFFIC: 设置为 true 以监听来自其他容器的 DogStatsD 数据包。

你可以通过环境变量配置代理的主配置文件 datadog.yaml 中的大多数选项,前缀为 DD_。有关更多信息,请参阅 代理环境变量

连接 Datadog 代理到 APISIX

默认情况下,datadog 插件期望 Datadog 代理在 127.0.0.1:8125 上可用。要更新 IP 地址和其他元数据,请按如下方式配置 datadog 插件的 插件元数据

curl "http://127.0.0.1:9180/apisix/admin/plugin_metadata/datadog" -X PUT -d '
{
// Annotate 1
"host": "192.168.0.90",
// Annotate 2
"port": 8125,
// Annotate 3
"namespace": "apisix"
}'

host: 替换为你的 IP 地址。

port: 如果不使用默认的 8125,请替换为你的端口。

namespace: 自定义作为所有指标前缀的命名空间。

监控路由指标

全局启用 datadog 并创建一个示例路由以生成指标。或者,你可以在路由上启用该插件。

datadog 配置为全局插件:

curl "http://127.0.0.1:9180/apisix/admin/global_rules/datadog" -X PUT -d '
{
"plugins": {
"datadog": {}
}
}'

创建一个你将收集指标的示例路由:

curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -d '
{
"id": "dd-route",
"uri": "/anything",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org": 1
}
}
}'

在 Datadog 中,从左侧菜单中选择 Metrics 并转到 Explorer。你应该看到许多可用的 APISIX 指标:

观察可用的 APISIX 指标

向路由生成一些请求:

curl "http://127.0.0.1:9080/anything"

你应该收到 HTTP/1.1 200 OK 响应。

导航回 Datadog 指标资源管理器并选择 apisix.ingress.size.count 作为指标。你应该看到计数反映了生成的请求数量:

显示请求计数的指标

下一步

你现在已经将 Datadog 与 APISIX 集成以进行指标监控。有了这些指标,你现在可以根据系统可靠性要求创建 警报控制台。有关更多信息,请参阅 Datadog 文档