mastra-ai/mastra · warning · MastraError
OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED
OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED
Error message
This storage provider does not support metric label key discovery
What it means
MastraError OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED. The base observability storage class provides no default getMetricLabelKeys implementation, so any provider that has not overridden it throws this error. It signals that label key discovery for metrics is an unimplemented capability in the configured storage backend.
Source
Thrown at packages/core/src/storage/domains/observability/base.ts:499
text: 'This storage provider does not support metric percentiles',
});
}
// ============================================================================
// Discovery / Metadata Methods
// ============================================================================
async getMetricNames(_args: GetMetricNamesArgs): Promise<GetMetricNamesResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_GET_METRIC_NAMES_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support metric name discovery',
});
}
async getMetricLabelKeys(_args: GetMetricLabelKeysArgs): Promise<GetMetricLabelKeysResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support metric label key discovery',
});
}
async getMetricLabelValues(_args: GetMetricLabelValuesArgs): Promise<GetMetricLabelValuesResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_GET_LABEL_VALUES_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support label value discovery',
});
}
async getEntityTypes(_args: GetEntityTypesArgs): Promise<GetEntityTypesResponse> {
throw new MastraError({View on GitHub (pinned to 75dd419e61)
Solutions
- Use a storage provider that implements getMetricLabelKeys
- Override getMetricLabelKeys in your storage domain class to return persisted label keys
- Catch this error and fall back to hardcoded or empty label-key lists in the UI
Example fix
// before
const keys = await storage.getMetricLabelKeys({ metricName });
// after
let keys = [];
try {
keys = (await storage.getMetricLabelKeys({ metricName })).labelKeys ?? [];
} catch (e) {
if (e.id !== 'OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED') throw e;
} Defensive patterns
Strategy: fallback
Validate before calling
async function supportsLabelKeys(storage) {
try { await storage.getMetricLabelKeys({}); return true; }
catch (e) { return e?.id === 'OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED' ? false : true; }
} Type guard
function isNotImplementedError(e: unknown): e is MastraError {
return e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED';
} Try / catch
try {
const res = await storage.getMetricLabelKeys(args);
} catch (e) {
if (isNotImplementedError(e)) return { labelKeys: [] };
throw e;
} Prevention
- Verify label key discovery is listed as supported by your storage backend
- Add a capability probe at startup and disable metric explorer features when absent
- Wrap discovery calls behind a storage facade with fallbacks
- Pin/test storage adapter versions against the Mastra version you use
When it happens
Trigger: Calling getMetricLabelKeys(args) on a storage instance that extends MastraObservabilityStorage without overriding the method.
Common situations: Custom or lightweight storage adapters used with observability metrics; older storage provider versions that shipped before label-key discovery was added; frontend metric explorers fetching label keys from a backend without the capability.
Related errors
- OBSERVABILITY_STORAGE_BATCH_CREATE_METRICS_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_LIST_METRICS_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_METRIC_AGGREGATE_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_METRIC_BREAKDOWN_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_METRIC_TIME_SERIES_NOT_IMPLEMENTED
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/25d3a31e16944ab8.
Report an issue: GitHub.