使用 Apitally 监控 Hono API
Apitally 是用于 REST API 的简单 API 监控与分析工具。它通过轻量的中间件与 Hono 集成,开箱即提供清晰直观的仪表盘,展示指标、日志和告警。
通过 Apitally,你可以:
- 监控 API 使用情况、性能和错误
- 跟踪每个使用者的 API 使用情况
- 记录并检查 API 请求和响应
- 捕获应用日志与跟踪信息,并将它们与请求关联
- 配置可用性监控和自定义告警
安装
在项目中安装 Apitally SDK:
bash
# npm
npm install apitally
# yarn
yarn add apitally
# pnpm
pnpm add apitally
# bun
bun add apitally配置
首先,在 Apitally 仪表盘中创建应用,获取客户端 ID。然后使用 useApitally 函数将中间件添加到 Hono 应用:
ts
import { Hono } from 'hono'
import { useApitally } from 'apitally/hono'
const app = new Hono()
useApitally(app, {
clientId: 'your-client-id', // Get this from the Apitally dashboard
env: 'dev', // or "prod", etc.
// Optional: Enable and configure request logging
requestLogging: {
enabled: true,
logRequestHeaders: true,
logRequestBody: true,
logResponseBody: true,
captureLogs: true,
},
})
// Add your routes after the middleware
app.get('/', (c) => c.text('Hello Hono!'))
export default app请在所有其他中间件之前添加 Apitally 中间件,以确保它包裹整个应用处理链。
识别使用者
要跟踪每个使用者的 API 使用情况,请使用 setConsumer 函数将请求与使用者标识关联。这通常在身份验证之后的中间件中完成。还可以提供可选的显示名称和使用者分组。
ts
import { setConsumer } from 'apitally/hono'
app.use(async (c, next) => {
const payload = c.get('jwtPayload')
if (payload) {
setConsumer(c, {
identifier: payload.sub,
name: payload.name, // optional
group: payload.group, // optional
})
}
await next()
})此时,Apitally 的使用者仪表盘会显示所有使用者,你可以按使用者筛选日志和指标。
另请参阅
- Apitally - 官方网站
- Apitally SDK - GitHub 仓库
- 官方配置指南
- Cloudflare Workers 官方配置指南