Your application
Requests, errors, and latency
HTTP telemetry
Open-source application monitoring
InflowAPM turns request telemetry into clear answers about errors, latency, P95, throughput, and route performance. Find what changed before your users have to explain it.
checkout-api
2,481 / min
1.7 %
842 ms
41.3 req/s
Request volume
Requests accepted per minute
A healthy route can become slow, then fail, in minutes. Without the telemetry between those moments, the first useful signal often arrives from an affected user.
Incident progression
checkout-api · production
POST /checkoutP95312 msPOST /checkoutP95847 msPOST /checkoutHTTP500POST /checkoutHTTP500InflowAPM accepts small event batches quickly, processes them outside the request path, and turns stored telemetry into route, latency, and error visibility.
Requests, errors, and latency
HTTP telemetry
Authenticated event batches
202 Accepted
Asynchronous processing
Retry + backoff
Project-scoped telemetry
Windowed queries
Latency, errors, throughput
Find the failing route
Start with application health, narrow the time window, compare route performance, then inspect the latest server failure. Every step uses telemetry the backend already records.
checkout-api · incident review
842 ms
↑ 174%
4.7 %
↑ 3.0 pts
14:32:41 UTC
Within selected range
When did it start?
P95 latency · five-minute view
Recent server error
Most recent in selected range
Payment provider timeout
Error context is read from the event metadata attached by the producing application.
Which route is affected?
Route performance · last 15 min
| Route | Requests | Errors | P95 |
|---|---|---|---|
| POST/checkout | 486 | 40 | 1.24s |
| GET/api/products | 1,242 | 0 | 128ms |
| GET/api/cart | 753 | 2 | 214ms |
Checkout handler → payment-provider call path
Add bounded, fail-open telemetry to Express without putting network delivery on the application request path.
Install
npm install @inflowapm/nodeInstall the public package from npm, then configure a project key and your InflowAPM endpoint.
.env
INFLOWAPM_API_KEY=iapm_project_key
INFLOWAPM_ENDPOINT=http://127.0.0.1:5002
INFLOWAPM_SERVICE=checkout-api
INFLOWAPM_ENVIRONMENT=development
INFLOWAPM_SERVICE_VERSION=1.4.0server.js
import express from "express";
import { InflowAPM } from "@inflowapm/node";
const app = express();
const inflow = new InflowAPM({
apiKey: process.env.INFLOWAPM_API_KEY,
endpoint: process.env.INFLOWAPM_ENDPOINT,
service: process.env.INFLOWAPM_SERVICE,
environment: process.env.INFLOWAPM_ENVIRONMENT,
serviceVersion: process.env.INFLOWAPM_SERVICE_VERSION ?? "1.4.0",
});
app.use(inflow.express());
app.get("/health", (_request, response) => response.send("ok"));Development
developmentStaging
stagingProduction
production@inflowapm/node
checkout-api → InflowAPMBrowser or Postman → Express middleware → route handler → response
POST /checkout · 500 · 1,240 ms
Postman sends the request. InflowAPM explains what happened after your application received it.
Middleware → bounded memory buffer → background batch → InflowAPM API
Delivery retries transient failures with backoff. Instrumentation failures stay fail-open so they do not replace your application response.
Read the full setup, configuration, privacy, reliability, and self-hosting reference before deploying the SDK.
Use the supported HTTP ingestion API today. The source, processing pipeline, storage model, and analytics queries remain open for you to inspect and run locally.
Direct HTTP ingestion
Supported today · no SDK required
curl -X POST http://localhost:5002/api/v1/telemetry/ingest \
-H "Authorization: Bearer $INFLOWAPM_PROJECT_KEY" \
-H "Content-Type: application/json" \
-d '[{
"type": "http",
"route": "/checkout",
"method": "POST",
"status": 500,
"duration_ms": 1240,
"metadata": {
"error_message": "Payment provider timeout"
},
"occurred_at": "2026-09-10T14:33:14.000Z"
}]'Built as a full system
Compact technology view
InflowAPM exposes the same architecture described here: an Express API, asynchronous telemetry processing, PostgreSQL analytics, and a Next.js product experience.