Creating Json Schema

JSON Schema Documentation

Overview

This JSON schema defines the structure for creating a dashboard with multiple tabs and configuring query settings. It consists of two main keys:

  • tabs: Defines the individual tabs and their associated widgets/charts.

  • header: Holds configuration or metadata that applies to the entire dashboard.

Key Structure

1 . Tabs

The tabs section defines the structure and configuration of individual dashboard tabs. Each tab contains a set of widgets for data visualizations.

Type

  • Array: An array of objects, where each object represents a single tab.

Tab Object Structure

  • title (String): The title of the dashboard tab.

  • key (String): Unique identifier for the tab.

  • order (Integer): Display order of the tab.

  • type (String): Type of tab, e.g., metrics, logs, alerts.

  • queryList (Array): Configuration for the widgets within the tab.

Query List

The queryList defines the configuration for each widget in the tab.

Type

  • Array: An array of objects, each defining a widget configuration.

Query List Object Structure

  • query (String): PromQL query for fetching data.

    • When defining the query ensure that each query contains braces {} following the metric name for potential label matching or filtering. For example, metric_name{}.

  • chart_type (String): Type of chart, e.g., area, bar.

    • Supported chart_type : (area, bar, line, scatter, counter, disk, gauge, stat, table, status, datetime, size )

  • name (String): Display name of the widget.

  • schema (Object): Schema associated with the widget.

  • options (Object): Additional configuration for the widget.

  • label (String): A label for the widget.

  • order (Integer): Order of the widget within the tab.

  • description (String): Description of the widget's purpose.

  • plot (Object): Plotting configuration for the widget.

  • xLabel (String): Label for the x-axis.

  • yLabel (String): Label for the y-axis.

  • x (String): Field for x-axis values.

  • y (Array): Fields for y-axis values.

  • groupBy (Array): Fields to group the data.

  • errorColumn (String): Error-related data field.

  • zone (Object): Thresholds for gauge types.

  • data_source_name (String): Data source for the widget.

Important Considerations

  • Each tab requires a unique key.

  • The type field influences data handling.

  • Ensure query is a valid PromQL query.

  • Match chart_type with supported types.

  • Tailor the plot configuration to the widget type.

  • data_source_name: Clearly indicate the source from where the widget is pulling data.

These guidelines ensure consistency and clarity across all widgets, allowing for a cohesive and informative dashboard experience.

2 . Header

The header section serves as the global filter configuration for the dashboard. It includes filters that apply across all the tabs and widgets in the dashboard.

Header Object Structure

  • dateTimeRange (Boolean): Date and time filter settings.

  • dropdowns (Array): An array of dropdowns, where each dropdown contains query configurations that filter the data by specific criteria.

Dropdown Object Structure

  • query (String): Query for filtering data.

  • key(String) : Represents the metric or data point being filtered. This key should match the corresponding metric in the dashboard.

  • name (String): Display name for the dropdown.

  • dataSource (String): Data source for dropdown options.

Important Considerations for Header

  • Correctly configure dateTimeRange and dropdowns for desired functionality.

  • The key in the dropdown object should match the labels for the metrics in the dashboard.

  • These dropdowns can also be made interdependent by using the same key name inside the query.

  • Ensure interdependency in dropdowns queries when needed.

Last updated