Aller au contenu

Surveiller les API Hono avec Apitally ​

Apitally est un outil simple de surveillance et d’analyse pour les API REST. Il s’intègre à Hono grâce à un middleware léger et fournit des tableaux de bord clairs et intuitifs avec des métriques, des journaux et des alertes prêts à l’emploi.

Avec Apitally, vous pouvez :

  • Surveiller l’utilisation, les performances et les erreurs de l’API
  • Suivre l’adoption de l’API par chaque consommateur
  • Journaliser et examiner les requêtes et les réponses de l’API
  • Capturer les journaux et les traces de l’application en les corrélant aux requêtes
  • Configurer la surveillance de disponibilité et des alertes personnalisées

Installation ​

Installez le SDK Apitally dans votre projet :

bash
# npm
npm install apitally

# yarn
yarn add apitally

# pnpm
pnpm add apitally

# bun
bun add apitally

Configuration ​

Commencez par créer une application dans le tableau de bord Apitally pour obtenir votre identifiant client. Ajoutez ensuite le middleware à votre application Hono à l’aide de la fonction useApitally :

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

Ajoutez le middleware Apitally avant tout autre middleware afin qu’il englobe l’ensemble de la pile applicative.

Identifier les consommateurs ​

Pour suivre l’utilisation de l’API par chaque consommateur, utilisez la fonction setConsumer pour associer les requêtes à des identifiants de consommateurs. Cela se fait généralement dans un middleware après l’authentification. Vous pouvez aussi fournir un nom d’affichage et un groupe de consommateurs facultatifs.

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

Le tableau de bord Consumers d’Apitally affiche désormais tous les consommateurs, et vous pouvez filtrer les journaux et les métriques par consommateur.

Voir aussi ​

Publié sous licence MIT.