我正在尝试将ECS服务发现与Prometheus配合使用。
目前,我的ECS容器是这样添加到Route 53中的:
+-----------------------------------------------+------+--------------------------------------------------------+
| Name | Type | Value |
+-----------------------------------------------+------+--------------------------------------------------------+
| my-service.local. | SRV | 1 1 8080 123456-7890-1234-5678-12345.my-service.local. |
| 123456-7890-1234-5678-12345.my-service.local. | A | 10.0.11.111 |
+-----------------------------------------------+------+--------------------------------------------------------+
我假设如果我在ECS中添加更多的运行容器,我将获得更多的Alias记录在Route 53中,以名称123456-7890-1234-5678-12345.my-service.local。
在我的Prometheus配置文件中,在scrape_config
下提供了以下内容:
- job_name: 'cadvisor'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'my-service.local'
type: 'SRV'
然而,当我在Prometheus中检查目标状态时,我看到以下内容:
Endpoint: http://123456-7890-1234-5678-12345.my-service.local:8080/metrics
State: Down
Error: context deadline exceeded
我对DNS服务发现及SRV记录的工作原理不太熟悉,因此不确定问题出在哪里。从AWS ECS服务发现添加的记录来看,
my-service.local
映射到123456-7890-1234-5678-12345.my-service.local:8080。然而,看起来Prometheus并没有试图找到映射到
123456-7890-1234-5678-12345.my-service.local
的本地IP列表,而是直接尝试从中抓取数据。我是否误解了某些基本原理,或者有我遗漏的配置选项可以使之正常工作?