| name | exa-observability |
| description | Set up monitoring, metrics, and alerting for Exa search integrations.
Use when implementing monitoring for Exa operations, building dashboards,
or configuring alerting for search quality and latency.
Trigger with phrases like "exa monitoring", "exa metrics",
"exa observability", "monitor exa", "exa alerts", "exa dashboard".
|
| allowed-tools | Read, Write, Edit |
| version | 1.11.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","exa","monitoring","observability"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Exa Observability
Overview
Monitor Exa search API performance, result quality, and cost efficiency. Key metrics: search latency by type (neural ~500-2000ms, keyword ~200-500ms), result count per query, cache hit rates, error rates by status code, and daily search volume for budget tracking.
Prerequisites
- Exa API integration in production
- Metrics backend (Prometheus, Datadog, or OpenTelemetry)
- Alerting system (PagerDuty, Slack, or equivalent)
Instructions
Step 1: Instrument the Exa Client
import Exa from "exa-js";
const exa = new Exa(process.env.EXA_API_KEY);
function emitMetric(name: string, value: number, tags: Record<string, string>) {
console.log(`[metric] ${name}=${value}`, tags);
}
async function trackedSearch(query: string, options: any = {}) {
const start = performance.now();
const = options. || ;
hasContents = options. || options. || options.;
{
method = hasContents ? : ;
results = hasContents
? exa.(query, options)
: exa.(query, options);
duration = performance.() - start;
(, duration, { , method });
(, results.., { });
(, , { });
results;
} (: ) {
duration = performance.() - start;
status = (err. || );
(, duration, { , status });
(, , { , status });
err;
}
}