UNPKG

apitally

Version:

Simple API monitoring & analytics for REST APIs built with Express, Fastify, NestJS, AdonisJS, Hono, H3, Elysia, Hapi, and Koa.

333 lines (236 loc) 9.91 kB
<p align="center"> <a href="https://apitally.io" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://assets.apitally.io/logos/logo-horizontal-new-dark.png"> <source media="(prefers-color-scheme: light)" srcset="https://assets.apitally.io/logos/logo-horizontal-new-light.png"> <img alt="Apitally logo" src="https://assets.apitally.io/logos/logo-horizontal-new-light.png" width="220"> </picture> </a> </p> <p align="center"><b>API monitoring & analytics made simple</b></p> <p align="center" style="color: #ccc;">Metrics, logs, traces, and alerts for your APIs — with just a few lines of code.</p> <br> <p> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://assets.apitally.io/screenshots/overview-dark.png"> <source media="(prefers-color-scheme: light)" srcset="https://assets.apitally.io/screenshots/overview-light.png"> <img alt="Apitally dashboard" src="https://assets.apitally.io/screenshots/overview-light.png"> </picture> </p> <br> # Apitally SDK for Node.js [![Tests](https://github.com/apitally/apitally-js/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/apitally-js/actions) [![Codecov](https://codecov.io/gh/apitally/apitally-js/graph/badge.svg?token=j5jqlrL7Pd)](https://codecov.io/gh/apitally/apitally-js) [![npm](https://img.shields.io/npm/v/apitally?logo=npm&color=%23cb0000)](https://www.npmjs.com/package/apitally) Apitally is a simple API monitoring and analytics tool that makes it easy to understand API usage, monitor performance, and troubleshoot issues. Get started in minutes by just adding a few lines of code. No infrastructure changes required, no dashboards to build. Learn more about Apitally on our 🌎 [website](https://apitally.io) or check out the 📚 [documentation](https://docs.apitally.io). ## Key features ### API analytics Track traffic, error and performance metrics for your API, each endpoint and individual API consumers, allowing you to make informed, data-driven engineering and product decisions. ### Request logs Drill down from insights to individual API requests or use powerful search and filters to find specific requests. View correlated application logs and traces for a complete picture of each request, making troubleshooting faster and easier. ### Error tracking Understand which validation rules in your endpoints cause client errors. Capture error details and stack traces for 500 error responses, and have them linked to Sentry issues automatically. ### API monitoring & alerts Get notified immediately if something isn't right using custom alerts, synthetic uptime checks and heartbeat monitoring. Alert notifications can be delivered via email, Slack and Microsoft Teams. ## Supported frameworks | Framework | Supported versions | Setup guide | | --------------------------------------------------- | --------------------- | ------------------------------------------------------ | | [**Express**](https://github.com/expressjs/express) | `4.x`, `5.x` | [Link](https://docs.apitally.io/setup-guides/express) | | [**Fastify**](https://github.com/fastify/fastify) | `4.x`, `5.x` | [Link](https://docs.apitally.io/setup-guides/fastify) | | [**NestJS**](https://github.com/nestjs/nest) | `9.x`, `10.x`, `11.x` | [Link](https://docs.apitally.io/setup-guides/nestjs) | | [**AdonisJS**](https://github.com/adonisjs/core) | `6.x` | [Link](https://docs.apitally.io/setup-guides/adonisjs) | | [**Hono**](https://github.com/honojs/hono) \* | `4.x` | [Link](https://docs.apitally.io/setup-guides/hono) | | [**H3**](https://github.com/h3js/h3) | `2.x` | [Link](https://docs.apitally.io/setup-guides/h3) | | [**Elysia**](https://github.com/elysiajs/elysia) | `1.x` | [Link](https://docs.apitally.io/setup-guides/elysia) | | [**Koa**](https://github.com/koajs/koa) | `2.x`, `3.x` | [Link](https://docs.apitally.io/setup-guides/koa) | | [**Hapi**](https://github.com/hapijs/hapi) | `21.x` | [Link](https://docs.apitally.io/setup-guides/hapi) | \* For Hono on Cloudflare Workers use our [Serverless SDK](https://github.com/apitally/apitally-js-serverless) instead. Apitally also supports many other web frameworks in [Python](https://github.com/apitally/apitally-py), [Go](https://github.com/apitally/apitally-go), [.NET](https://github.com/apitally/apitally-dotnet) and [Java](https://github.com/apitally/apitally-java) via our other SDKs. ## Getting started If you don't have an Apitally account yet, first [sign up here](https://app.apitally.io/?signup). Then create an app in the Apitally dashboard. You'll see detailed setup instructions with code snippets you can copy and paste. These also include your client ID. See the [SDK reference](https://docs.apitally.io/sdk-reference/javascript) for all available configuration options, including how to mask sensitive data, customize request logging, and more. ### Express Install the SDK: ```bash npm install apitally ``` Then add the Apitally middleware to your application: ```javascript const express = require("express"); const { useApitally } = require("apitally/express"); const app = express(); app.use(express.json()); useApitally(app, { clientId: "your-client-id", env: "dev", // or "prod" etc. }); ``` For further instructions, see our [setup guide for Express](https://docs.apitally.io/setup-guides/express). ### Fastify Install the SDK with the `fastify-plugin` peer dependency: ```bash npm install apitally fastify-plugin ``` Then register the Apitally plugin with your application: ```javascript import Fastify from "fastify"; import { apitallyPlugin } from "apitally/fastify"; const fastify = Fastify({ logger: true }); await fastify.register(apitallyPlugin, { clientId: "your-client-id", env: "dev", // or "prod" etc. }); ``` _Note:_ If your project uses CommonJS you need to wrap your routes in a plugin, so Apitally can detect them. For further instructions, see our [setup guide for Fastify](https://docs.apitally.io/setup-guides/fastify). ### NestJS Install the SDK: ```bash npm install apitally ``` Then add the Apitally middleware to your application: ```javascript import { NestFactory } from "@nestjs/core"; import { useApitally } from "apitally/nestjs"; import { AppModule } from "./app.module"; async function bootstrap() { const app = await NestFactory.create(AppModule); await useApitally(app, { clientId: "your-client-id", env: "dev", // or "prod" etc. }); // ... } bootstrap(); ``` For further instructions, see our [setup guide for NestJS](https://docs.apitally.io/setup-guides/nestjs). ### AdonisJS Install the SDK: ```bash npm install apitally ``` Then use the following Ace command to configure Apitally in your AdonisJS application: ```bash node ace configure apitally/adonisjs ``` For further instructions, see our [setup guide for AdonisJS](https://docs.apitally.io/setup-guides/adonisjs). ### Hono Install the SDK: ```bash npm install apitally ``` Then add the Apitally middleware to your application: ```javascript import { Hono } from "hono"; import { useApitally } from "apitally/hono"; const app = new Hono(); useApitally(app, { clientId: "your-client-id", env: "dev", // or "prod" etc. }); ``` For further instructions, see our [setup guide for Hono](https://docs.apitally.io/setup-guides/hono). ### H3 Install the SDK: ```bash npm install apitally ``` Then register the Apitally plugin with your application: ```javascript import { H3 } from "h3"; import { apitallyPlugin } from "apitally/h3"; const app = new H3({ plugins: [ apitallyPlugin({ clientId: "your-client-id", env: "dev", // or "prod" etc. }), ], }); ``` For further instructions, see our [setup guide for H3](https://docs.apitally.io/setup-guides/h3). ### Elysia Install the SDK: ```bash npm install apitally ``` Then add the Apitally plugin to your application: ```javascript import { Elysia } from "elysia"; import { apitallyPlugin } from "apitally/elysia"; const app = new Elysia() .use( apitallyPlugin({ clientId: "your-client-id", env: "dev", // or "prod" etc. }), ) .get("/", () => "hello"); ``` For further instructions, see our [setup guide for Elysia](https://docs.apitally.io/setup-guides/elysia). ### Koa Install the SDK: ```bash npm install apitally ``` Then add the Apitally middleware to your application: ```javascript const Koa = require("koa"); const { useApitally } = require("apitally/koa"); const app = new Koa(); useApitally(app, { clientId: "your-client-id", env: "dev", // or "prod" etc. }); ``` For further instructions, see our [setup guide for Koa](https://docs.apitally.io/setup-guides/koa). ### Hapi Install the SDK: ```bash npm install apitally ``` Then register the Apitally plugin with your application: ```javascript const Hapi = require("@hapi/hapi"); const { apitallyPlugin } = require("apitally/hapi"); const init = async () => { const server = Hapi.server({ port: 3000, host: "localhost", }); await server.register({ plugin: apitallyPlugin({ clientId: "your-client-id", env: "dev", // or "prod" etc. }), }); }; init(); ``` For further instructions, see our [setup guide for Hapi](https://docs.apitally.io/setup-guides/hapi). ## Getting help If you need help please [create a new discussion](https://github.com/orgs/apitally/discussions/categories/q-a) on GitHub or email us at [support@apitally.io](mailto:support@apitally.io). We'll get back to you as soon as possible. ## License This library is licensed under the terms of the [MIT license](LICENSE).