本文へ移動

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 の利用者ダッシュボードにすべての利用者が表示され、利用者ごとにログやメトリクスを絞り込めます。

関連情報 ​

MIT ライセンスで公開されています。