Skip to main content Set up Juicebox monitoring and observability.
Use when implementing logging, metrics, tracing,
or alerting for Juicebox integrations.
Trigger with phrases like "juicebox monitoring", "juicebox metrics",
"juicebox logging", "juicebox observability".
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill juicebox-observability ai automation claude-code devops mcp ai-agents
Juicebox Observability
Overview
Juicebox provides AI-powered people search and analysis where query performance, dataset ingestion rates, and quota consumption are the primary observability concerns. Monitor analysis completion times to ensure interactive UX, track ingestion pipeline health for data freshness, and watch quota usage to prevent mid-workflow cutoffs. Slow queries or failed ingestions degrade recruiter productivity and data accuracy.
Key Metrics
Metric Type Target Alert Threshold Search latency p95 Histogram < 2s > 5s Analysis completion time Histogram < 10s > 30s Dataset ingestion rate Gauge > 100 records/s < 50 records/s API error rate Gauge < 1% > 5% Quota usage (daily) Gauge < 70% > 85% Query result relevance Gauge
Instrumentation async function trackJuiceboxCall(operation: string, fn: () => Promise<any>) {
const start = Date.now();
try {
const result = await fn();
metrics.histogram('juicebox.api.latency', Date.now() - start, { operation });
metrics.increment('juicebox.api.calls', { operation, status: 'ok' });
return result;
} catch (err) {
metrics.increment('juicebox.api.errors', { operation, error: err.code });
throw err;
}
}
Health Check Dashboard async function juiceboxHealth(): Promise<Record<string, string>> {
const searchP95 = await metrics.query('juicebox.api.latency', 'p95', '5m');
const errorRate = await metrics.query('juicebox.api.error_rate', 'avg', '5m');
const quota = await juiceboxAdmin.getQuotaUsage();
return {
search_latency: searchP95 < 2000 ? 'healthy' : 'slow',
error_rate: errorRate < 0.01 ? 'healthy' : 'degraded',
quota: quota.pct < 0.7 ? 'healthy' : 'at_risk',
};
}
Alerting Rules const alerts = [
{ metric: 'juicebox.search.latency_p95', condition: '> 5s', window: '10m', severity: 'warning' },
{ metric: 'juicebox.api.error_rate', condition: '> 0.05', window: '5m', severity: 'critical' },
{ metric: 'juicebox.quota.daily_pct', condition: '> 0.85', window: '1h', severity: 'warning' },
{ metric: 'juicebox.ingestion.rate', condition: '< 50/s', window: '15m', severity: 'critical' },
];
Structured Logging function logJuiceboxEvent(event: string, data: Record<string, any>) {
console.log(JSON.stringify({
service: 'juicebox', event,
operation: data.operation, duration_ms: data.latency,
result_count: data.resultCount, query_length: data.queryLen,
// Redact candidate PII — log only aggregate counts
timestamp: new Date().toISOString(),
}));
}
Error Handling Signal Meaning Action 429 rate limit Quota exhausted for period Pause queries, check daily allocation Search timeout > 5s Complex query or service load Simplify filters, retry with narrower scope Ingestion stall Dataset too large or format error Check upload logs, validate schema Empty result set Index gap or query mismatch Verify dataset freshness, adjust search params
Resources
Next Steps See juicebox-incident-runbook.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).