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 :
# npm
npm install apitally
# yarn
yarn add apitally
# pnpm
pnpm add apitally
# bun
bun add apitallyConfiguration
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 :
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 appAjoutez 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.
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
- Apitally - Site officiel
- SDK Apitally - Dépôt GitHub
- Guide de configuration officiel
- Guide de configuration officiel pour Cloudflare Workers