Heroku 日志
Heroku 可让您部署、运行和管理以多种编程语言编写的应用程序。Heroku 的 Logplex 路由器收集来自您的应用及 Heroku 中所有其他来源(包括 dyno、路由器和运行时)的日志,并将消息从来源路由到 drain。
Heroku 日志 drain 支持通过 HTTPS 传输消息,并通过 POST 请求将数据批量发送到 HTTPS 端点。您可以将 Heroku 应用配置为直接向 HTTP 来源的 URL 发送 POST 数据,并使用 Site24x7 AppLogs 开始监控数据。
前提条件
安装 Heroku 命令行界面,以便直接从终端创建和管理 Heroku 应用。
日志管理入门
- 登录您的 Site24x7 账户。
- 前往管理 > AppLogs > 日志类型 > 添加日志类型。
- 从日志类型下拉菜单中选择 Heroku 日志。
- 以下是 Site24x7 AppLogs 为 Heroku 应用日志和 Heroku 路由器日志默认识别的日志模式:
日志模式
示例日志* <*>* $Datetime:date:yyyy-MM-dd'T'HH:mm:ss.SSSSSSX$ host $Source$ $Dyno$ $Message$
以下是 Heroku 应用日志和 Heroku 路由器日志的示例:
90 <134>1 2022-11-16T18:49:08.498249+00:00 host heroku web.1 - State changed from up to down
290 <158>1 2022-11-21T18:13:27.538303+00:00 host heroku router - at=info method=GET path="/static/lang-logo.png" host=fathomless-taiga-38899.herokuapp.com request_id=a0c40543-6016-4ba1-8e16-201e7ee5b4b5 fwd="125.17.68.211" dyno=web.1 connect=0ms service=5ms status=304 bytes=159 protocol=https
上述示例日志可被拆分为以下字段,每个字段将从中获取各自的值并上传至 Site24x7。
使用衍生字段支持,正则表达式规则可解析 Heroku 路由器日志消息:字段名称 字段值 Datetime 2022-11-21T18:13:27.538303+00:00 Source heroku Dyno router Message - at=info method=GET path="/static/lang-logo.png" host=fathomless-taiga-38899.herokuapp.com request_id=a0c40543-6016-4ba1-8e16-201e7ee5b4b5 fwd="125.17.68.211" dyno=web.1 connect=0ms service=5ms status=304 bytes=159 protocol=https 
- 复制 API 上传下方的 URL。设置 HTTPS drain 命令时需要提供此 URL。您可以仅复制 token 以替换 drain 命令中的对应内容,也可以如截图所示复制完整的 API 端点 URL 并相应粘贴。

- 保存日志类型。
在 Heroku 中启用日志
接下来,打开 Heroku 命令行,执行以下命令:
heroku drains:add "https://logc.site24x7.com/event/receiver?rawLogs=true&token=<Token>&logSource=<CustomAppName>" --app <ApplicationName>
上述命令包含三个部分:
- https://logc.site24x7.com/event/receiver?rawLogs=true&token=<Token>:这是 API 端点 URL。如上文第 5 步所述,您可以替换 token,也可以将从 Site24x7 控制台复制的完整 URL 粘贴到 drain 命令中。
- <CustomAppName>:这是您为应用指定的自定义应用名称。
- <ApplicationName>:这是您的 Heroku 应用名称。
完成上述步骤后,Heroku 将开始向 Site24x7 AppLogs 发送日志。
Heroku 仪表板
以下是 Heroku 仪表板默认提供的小部件列表:
- 总请求数
- 平均连接时间
- 平均服务时间
- 平均响应大小
- 失败请求数
- Top 20 失败请求
- 请求趋势
- 日志级别
- 状态码统计
- 服务时间统计
- Top 50 成功请求
- Top 10 最慢请求

