-
Notifications
You must be signed in to change notification settings - Fork 50
Description
Is your feature request related to a problem? Please describe.
Currently, there is no native way within the OpenObserve Helm chart to provision dashboards as code (GitOps). While it is technically possible to upload dashboards using the API, the process feels clunky.
To achieve this right now, we have to write custom Kubernetes Jobs or post-install hooks that manage API credentials and execute curl commands to POST JSON files to the /api/<org>/dashboards endpoint. This adds unnecessary complexity and maintenance overhead compared to other observability tools.
Describe the solution you'd like
I would like the Helm chart to support automatic dashboard provisioning. Ideally, this would function similarly to the Datadog Operator, where dashboards are managed as Kubernetes Custom Resource Definitions (CRDs).
We are looking for an implementation similar to DatadogDashboard https://docs.datadoghq.com/containers/datadog_operator/crd_dashboard/, where the dashboard definition lives in a YAML file. Here is an example of what we want to be able to do with OpenObserve:
apiVersion: openobserve.ai/v1alpha1
kind: OpenObserveDashboard
metadata:
name: example-dashboard
spec:
title: Test Dashboard
layoutType: ordered
tags:
- "team:my_team"
# Clean dashboard structure defined directly in YAML
widgets: |
[
{
"id": "cpu-usage-widget",
"definition": {
"title": "CPU Usage",
"type": "timeseries",
"requests": [
{
"queries": [
{
"name": "query1",
"data_source": "metrics",
"query": "avg:system.cpu.user{*} by {host}"
}
],
"display_type": "line"
}
]
},
"layout": { "x": 0, "y": 0, "width": 4, "height": 2 }
}
]This feature is standard in tools like Grafana and Datadog. It allows us to manage dashboards via GitOps (ArgoCD/Flux) without maintaining custom scripts, simplifies version control, and ensures that if a dashboard resource is deleted from Kubernetes, it is removed from the application.