List saved Costory business metrics and, optionally, matching live external metrics from connected integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch). Saved metrics return id/name/type for { type: "metric", metricId: "..." } in query. Set includeExternal: true with a specific search term to return externalMetrics with provider, integrationId, integrationName, metricName, unit, capabilities, and attributes — enough to build { type: "externalMetric", provider, integrationId, metricName, aggregator, groupByFields, conditions } for Tsuga or Datadog (same shape — for Datadog, attributes are tag keys and metricName is the Datadog metric name), or CloudWatch (same shape — for CloudWatch, metricName is Namespace/MetricName such as AWS/EC2/CPUUtilization and attributes are dimension names), or { type: "externalMetric", provider: "bigquery", integrationId, metricName (table id), dateColumn, metricColumn, gapFillingMethod, aggregator, groupByFields } for BigQuery. Do not call includeExternal without search; external catalogs can be large, and the tool will ask for a search term instead of listing everything. externalLimit (default 50, max 50) caps matching external results. Pass `datasourceId` to instead get a usage-metric datasource's available **groupBy dimension(s)** (`groupByDimensions`) for building a virtual-dimension **`telemetry`** (split-by-usage-metric) allocation. Then call `query` (`type: "metric"`, `metricId`, `groupBy`) to inspect the values for a dimension, and use those values as keys of the allocation's `mappingParams.mapping`, each mapped to a vdim bucket label; unmapped values fall through to the leftover rule. The `datasourceId` is the same `metricsDatasource` id this tool returns as a saved-metric `id` (strip any `::metricName` suffix). Does **not** return values (use `query`) and does **not** cover live external-metric integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch) — those cannot back a `telemetry` allocation.
EXAMPLES:
• "What business metrics do we have?" → {}
• "Find Tsuga metrics about requests" → { includeExternal: true, search: "request" }
• "Find BigQuery tables about revenue" → { includeExternal: true, search: "revenue" }
• "Find Datadog metrics about CPU" → { includeExternal: true, search: "cpu" }
• "Find CloudWatch metrics about CPU" → { includeExternal: true, search: "CPUUtilization" }
• "What can I reallocate shared cost by?" → {} (each saved-metric id is a telemetry.datasource)
• "What can I split the Datadog CPU metric by?" → { datasourceId: "clx…" }