list_prometheus_metric_metadata
Retrieve metadata for Prometheus metrics scraped from monitoring targets. Use this tool to explore available metrics, their types, and labels for a specified Grafana datasource.
Instructions
List Prometheus metric metadata. Returns metadata about metrics currently scraped from targets.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| datasourceUid | Yes | The UID of the datasource to query | |
| limit | No | The maximum number of metrics to return | |
| limitPerMetric | No | The maximum number of metrics to return per metric | |
| metric | No | The metric to query |
Implementation Reference
- src/tools/prometheus.ts:215-230 (handler)The ToolDefinition for 'list_prometheus_metric_metadata' including its handler function that uses PrometheusClient.getMetricMetadata to fetch metric metadata.export const listPrometheusMetricMetadata: ToolDefinition = { name: 'list_prometheus_metric_metadata', description: 'List Prometheus metric metadata. Returns metadata about metrics currently scraped from targets.', inputSchema: ListPrometheusMetricMetadataSchema, handler: async (params, context: ToolContext) => { try { const client = new PrometheusClient(context.config.grafanaConfig, params.datasourceUid); const metadata = await client.getMetricMetadata(params.metric, params.limit); return createToolResult(metadata); } catch (error: any) { return createErrorResult(error.message); } }, };
- src/tools/prometheus.ts:50-55 (schema)Zod input schema for the tool defining parameters: datasourceUid, optional metric, limit, and limitPerMetric.const ListPrometheusMetricMetadataSchema = z.object({ datasourceUid: z.string().describe('The UID of the datasource to query'), metric: z.string().optional().describe('The metric to query'), limit: z.number().optional().describe('The maximum number of metrics to return'), limitPerMetric: z.number().optional().describe('The maximum number of metrics to return per metric'), });
- src/tools/prometheus.ts:237-237 (registration)Specific registration of the listPrometheusMetricMetadata tool within the registerPrometheusTools function.server.registerTool(listPrometheusMetricMetadata);
- src/cli.ts:107-108 (registration)Top-level conditional registration of Prometheus tools (including list_prometheus_metric_metadata) in the CLI entrypoint by invoking registerPrometheusTools.if (enabledTools.has('prometheus')) { registerPrometheusTools(server);