Zum Inhalt springen

Hono-APIs mit Apitally überwachen ​

Apitally ist ein einfaches Werkzeug zur API-Überwachung und -Analyse für REST-APIs. Es wird über eine leichtgewichtige Middleware in Hono integriert und bietet sofort übersichtliche, intuitive Dashboards mit Metriken, Logs und Benachrichtigungen.

Mit Apitally kannst du:

  • API-Nutzung, Leistung und Fehler überwachen
  • Die API-Nutzung einzelner Verbraucher verfolgen
  • API-Anfragen und -Antworten protokollieren und untersuchen
  • Anwendungslogs und Traces erfassen und mit Anfragen verknüpfen
  • Verfügbarkeitsüberwachung und eigene Benachrichtigungen einrichten

Installation ​

Installiere das Apitally SDK in deinem Projekt:

bash
# npm
npm install apitally

# yarn
yarn add apitally

# pnpm
pnpm add apitally

# bun
bun add apitally

Einrichtung ​

Erstelle zunächst im Apitally-Dashboard eine Anwendung, um deine Client-ID zu erhalten. Füge dann die Middleware mit der Funktion useApitally zu deiner Hono-Anwendung hinzu:

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

Füge die Apitally-Middleware vor allen anderen Middlewares hinzu, damit sie den gesamten Verarbeitungsablauf der Anwendung umschließt.

Verbraucher identifizieren ​

Um die API-Nutzung einzelner Verbraucher zu verfolgen, verknüpfe Anfragen mithilfe der Funktion setConsumer mit Verbraucherkennungen. Dies erfolgt üblicherweise in einer Middleware nach der Authentifizierung. Du kannst optional auch einen Anzeigenamen und eine Verbrauchergruppe angeben.

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()
})

Das Verbraucher-Dashboard in Apitally zeigt nun alle Verbraucher an. Du kannst Logs und Metriken nach Verbraucher filtern.

Siehe auch ​

Veröffentlicht unter der MIT-Lizenz.