You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku免费层部署应用Datadog显示3台主机异常咨询

问题描述

在Heroku免费层部署搭载PostgreSQL附加组件的应用后,查看已集成的Datadog基础设施监控列表,预期仅展示2台主机(1台对应API服务、1台对应数据库服务),实际检测到3台主机,需确认第三台主机的来源与属性。

已收集的环境与排查信息

heroku info命令执行输出如下:

$ heroku info
=== myappname
Addons:         heroku-postgresql:hobby-dev
Auto Cert Mgmt: false
Dynos:          web: 1, run: 1
Git URL:        https://git.heroku.com/myappname.git
Owner:          name@gmail.com
Region:         us
Repo Size:      937 KB
Slug Size:      123 MB
Stack:          heroku-20
Web URL:        https://myappname.herokuapp.com/

其余已知信息:

  • 暂不明确上述输出中web、run类型Dyno的具体指代
  • 执行heroku regions --common --json返回长度为2的数组,对应两台ID不同的机器,分别部署在欧洲、美国区域
  • Datadog主机详情页属性显示:2台主机标注dynotype:run,1台主机标注dynotype:web
  • 监控截图参考:
    Datadog主机监控列表截图
原因说明

首先明确Heroku两类Dyno的定义:

  • web类型Dyno:唯一可接收外部HTTP流量的Dyno类型,即对外提供API/网页服务的运行实例,配置中分配的1台该类型Dyno,对应Datadog里标注dynotype:web的主机。
  • run类型Dyno:用于运行一次性任务、命令的临时容器,触发场景包括手动执行heroku run命令(如跑数据库迁移、进入控制台、执行自定义脚本)、Heroku平台自动执行的附加组件绑定、健康检查、免费层Dyno休眠唤醒调度等操作。

多出来的1台dynotype:run主机并非PostgreSQL数据库实例:Heroku hobby-dev层级的Postgres是多租户共享托管实例,不会以用户名下独立Dyno主机的形式上报到Datadog。
这台额外的run类型主机来源为临时生成的一次性任务容器,这类容器本身存活时间仅数分钟,Datadog在实例销毁后会保留1-2小时的主机列表缓存,不会立刻移除,属于正常现象。

补充说明:heroku regions --common --json返回的欧美两个节点是Heroku公共区域的接入入口,和实际运行的Dyno数量无直接对应关系,所有上报到Datadog的主机均对应该应用名下的Dyno实例,不存在未知外部主机。

内容的提问来源于stack exchange,提问作者stk1234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:36:34