Performance Monitoring With Taskless
Using Taskless, you can capture traditional APM data such as response times, error rates, and request metadata without manually instrumenting every call.
What is Taskless?
Taskless helps developers instrument the network calls their applications make, regardless of the APIs and SDKs used. It's compatible with existing telemetry and logging solutions, giving you a faster route to better logs.Using a different framework other than what's shown ?
You can switch the framework you're viewing docs for:
Quick Start
Section titled “Quick Start”Install Taskless
Section titled “Install Taskless”In your project root, run the following command to install the Taskless Client:
npm install @taskless/loader
pnpm add @taskless/loader
yarn add @taskless/loader
Install The Pack
Section titled “Install The Pack”You can install the Core Pack with the following command:
npx @taskless/pack install https://github.com/taskless/pack-core/releases/download/v0.0.7/pack.tgz
pnpx @taskless/pack install https://github.com/taskless/pack-core/releases/download/v0.0.7/pack.tgz
yarn dlx @taskless/pack install https://github.com/taskless/pack-core/releases/download/v0.0.7/pack.tgz
Modify Your “Start” Command
Section titled “Modify Your “Start” Command”All that’s left is to update your app’s start
command
{ "name": "my-next-js-app", "scripts": { "dev": "next dev", "build": "next build", "start": "NODE_OPTIONS=\"--import=@taskless/loader\" next start" }}
{ "name": "my-nest-app", "scripts": { "dev": "nest dev", "build": "nest build", "start": "NODE_OPTIONS='--import=@taskless/loader' nest start" }}
{ "name": "my-express-app", "scripts": { "start": "node --import=@taskless/loader server.js" }}
{ "name": "my-hono-app", "scripts": { "dev": "tsx watch src/index.ts", "build": "tsc", "start": "node --import=@taskless/loader dist/index.js" }}
{ "name": "my-react-router-app", "scripts": { "build": "react-router build", "dev": "react-router dev", "start": "NODE_OPTIONS=\"--import=@taskless/loader\" react-router-serve ./build/server/index.js", "typecheck": "react-router typegen && tsc" }}
{ "name": "my-node-app", "scripts": { "start": "node --import=@taskless/loader server.js" }}
{ "name": "my-node-app", "scripts": { "start": "node --import=@taskless/loader server.js" }}
Configuring the Core Pack
Section titled “Configuring the Core Pack”The following configuration fields are available for the core telemetry pack.
If using the CLI, you can configure these inside of your Pack’s config.json inside of the .taskless
directory. If using Taskless Cloud, these can be configured via the Taskless Cloud dashboard.
Field Name | Type | Description | Default Value |
---|---|---|---|
domains | string[] | List of domains to capture telemetry for | ["*"] |
enableUrl | boolean | Enable URL capture | true |
enablePath | boolean | Enable path capture | true |
enableError | boolean | Enable error capture | true |
enableDomain | boolean | Enable domain capture | true |
enableStatus | boolean | Enable status capture | true |
enableDurationMs | boolean | Enable duration capture | true |
Default Charts
Section titled “Default Charts”The core telemetry pack automatically generates the following visualization charts in Taskless Cloud:
- Response Time (p95): 95th percentile response times by domain (hourly buckets)
- Response Time (p99): 99th percentile response times by domain (hourly buckets)
- Calls per Domain: Table showing request counts grouped by domain
- Failures by Domain: Pie chart showing error distribution across domains (status >= 400)
For the complete configuration reference and advanced use cases, visit the pack-core documentation.
Do I need any additional infrastructure?
No, Taskless is designed to work inside your existing application context.
This way you don’t have to figure out kubernetes, create lambda sidecars, or
stand up additional machines.
What is the performance overhead of Taskless?
Taskless tries to do as much as possible asynchronously and locally to minimize the performance impact
to your app. The WebAssembly overhead is typically less than 1ms.
When your application starts and you are using Taskless Cloud for requests (via an API key), your configuration will be downloaded from the Taskless Cloud if it isn’t already cached. The overhead of this request is typically 100-200ms.
What happens if Taskless is unavailable?
When your configuration and integrations are running locally, Taskless will continue to function even if the service isn’t available.
If you are retrieving or sending data to Taskless Cloud, Taskless takes a “fail open” approach. This means that our default behavior is to let requests fall through to your application’s built-in network requests.