Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jeremylongshore/glean-observability
Track: documents indexed per run (total + new + updated + deleted), indexing errors and retries, search API latency, zero-result query rate, stale content age distribution. Trigger: "glean observability", "observability".
Passed 18 of 20 test cases with the skill, and 5 of 20 without it.
and 17 more in the full report
15 fixed5 passed either way1 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
In the search tracking instrumentation wrapper function for Glean, what counter metric name is incremented on every execution regardless of whether search results are found?
| Checked | Without skill | With skill |
|---|---|---|
| Increments the metric glean.search.total on every execution. | Missed | Passed |
The instructions your model reads when the skill loads.
Glean aggregates enterprise knowledge across dozens of connectors, making indexing health and search quality the two pillars of observability. Monitor connector sync status to catch stale content before users notice, track search latency to maintain sub-second responses, and measure zero-result rates to identify coverage gaps. Degraded indexing silently erodes search relevance, so proactive alerting is essential.
| Metric | Type | Target | Alert Threshold |
|---|---|---|---|
| Search latency p95 | Histogram | < 400ms | > 1s |
| Zero-result query rate | Gauge | < 5% | > 10% |
| Documents indexed per run | Counter | Stable +/-5% | Drop > 20% |
| Connector sync errors | Counter | 0 | > 3 per hour |
| Stale content ratio | Gauge | < 10% | > 25% (>30 days old) |
| Indexing throughput | Gauge | > 1000 docs/min | < 500 docs/min |
async function trackGleanSearch(query: string, client: GleanClient) {
const start = Date.now();
try {
const results = await client.search({ query });
const latency = Date.now() - start;
metrics.histogram('glean.search.latency', latency);
metrics.increment('glean.search.total');
if (results.totalCount === 0) metrics.increment('glean.search.zero_results');
return results;
} catch (err) {
metrics.increment('glean.search.errors', { error: err.code });
throw err;
}
}
async function gleanHealth(): Promise<Record<string, string>> {
test cases passed, vs 5 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.