- The HoneyHive CLI,
jq, and yq v4. - Permission to create API keys in your workspace.
Set up
1
Create two API keys
Charts and alerts use different keys. Go to Settings > Workspace > API Keys and create one key on each tab:
- Data Plane tab, for charts. Grant
project.chart.list,.post, and.put. Save it asHH_DATA_PLANE_API_KEY. - Control Plane tab, for alerts. Grant
project.alert.listand.post. Save it asHH_CONTROL_PLANE_API_KEY.
2
List your projects
Create
.honeyhive/projects.yaml with one or more project IDs. You find each ID in the project’s settings, on the Data Plane tab. The name is only a label for you..honeyhive/projects.yaml
3
Define a chart
Each file under To see every field, run
.honeyhive/charts/ is one chart. This one shows the median model latency per day:.honeyhive/charts/model-latency.yaml
honeyhive charts create --show-file-schema.4
Define an alert
Each file under To see every field, run
.honeyhive/alerts/ is one alert. This one emails project members when average model latency goes above 5 seconds:.honeyhive/alerts/high-model-latency.yaml
honeyhive alerts create --show-file-schema.5
Add the sync script
Save this script as
sync-dashboards.sh at the root of your repo. It needs no changes.sync-dashboards.sh
sync-dashboards.sh
sync-dashboards.sh
6
Run it
How updates work
The script matches charts and alerts by name, so keep names unique within a project.- Charts: if a chart with the same name exists, the script updates it. Otherwise it creates it.
- Alerts: the script only creates alerts that don’t exist yet. It can’t change an existing alert, because the CLI has no alert update. To change one, edit it in the UI, or delete it there and run the script again.
Run from CI
To apply changes on every merge, add a workflow with both keys saved as repository secrets:.github/workflows/honeyhive-dashboards.yml
Set it up with a coding agent
Paste this prompt into Claude Code, Cursor, or another coding agent in your repository:Limits
- Chart names can only use letters, numbers, spaces, and
_ - ' &. Other characters, such as parentheses, return a400. - New projects: creating an alert returns
400: No schema data founduntil the project has logged matching events. Run the script again after events arrive. - Many alerts: the script reads the 100 newest alerts per project. With more, add
--pageto thealerts listcall, or it can create duplicates. - Self-hosted and dedicated deployments: also set
HH_DATA_PLANE_URLandHH_CONTROL_PLANE_URL, in your shell and in the workflow’senv.