Findings:
mcp__grafana__update_dashboardsupports patching$.tagsvia JSONPath- Append:
{"op": "add", "path": "$.tags/- ", "value": "app_code=fxa"} - Replace:
{"op": "replace", "path": "$.tags", "value": ["app_code=fxa", ...]} - Folders cannot be tagged — only dashboards
- Must read existing tags first, then
replacewith merged array to avoid clobbering
Anti-patterns:
- Don't blindly append if
$.tagsis null/missing - No filter expressions in JSONPath — only numeric indices
- Don't attempt to tag folders
For each folder in the mapping, search for all dashboards, then read current tags via get_dashboard_property(uid, "$.tags").
33 folder-to-app_code mappings across 26 tenants:
| Confidence | Count | App Codes |
|---|---|---|
| High | 25 folders | 0din, amo, autograph, autopush, balrog, bugbug, bugzilla, classify-client, cinder, common-voice (x2), crlite, ctms, dap, fakespot, fxa, merino, monitor, pontoon, relay, remote-settings, sumo, sync (x2), taskcluster, vpn |
| Medium | 5 folders | ads, basket, bedrock, vpn (Guardian), socorro |
For each dashboard in high-confidence folders:
- Read existing tags
- Skip if
app_code=<tenant>already present - Build merged tag array:
existing + ["app_code=<tenant>"] - Apply via
update_dashboardreplace operation
Process in order of 90-day activity:
- fxa (743 views, 25 dashboards)
- merino (429 views, 5 dashboards)
- taskcluster (294 views, 8 dashboards)
- sync (225 views, 15 dashboards, 2 folders)
- bugzilla (178 views)
- autopush, autograph, relay, monitor
- Remaining high-confidence folders
Verification: Search by tag app_code=<tenant> after each folder.
Same process for:
- ads-engineering →
app_code=ads - Basket →
app_code=basket - Bedrock / www.mozilla.org →
app_code=bedrock - Guardian →
app_code=vpn - crash-ingestion →
app_code=socorro
Extra caution: Shared folders (svcops) may contain multi-tenant dashboards — only tag where slug/title clearly matches.
Dashboards in shared folders matched to tenants by the 90-day activity cross-reference:
| Dashboard | UID | Tag |
|---|---|---|
| AMO | CsSDyxTZ1 | app_code=amo |
| Autograph | gohbKM0WZ | app_code=autograph |
| Bouncer - v2 | eesc80sgxn30ge | app_code=bouncer |
- Search Grafana for
app_code=<tenant>per tenant - Compare counts against cross-reference
- Update the Confluence report with tagging results
Want me to start executing?