0.26.30 • Published 8 months ago

@kong-ui-public/dashboard-renderer v0.26.30

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
8 months ago

@kong-ui-public/dashboard-renderer

Render Analytics charts on a page from a JSON definition.

Requirements

  • vue must be initialized in the host application
  • A plugin providing an AnalyticsBridge must be installed in the root of the application.
    • This plugin must provide the necessary methods to adhere to the AnalyticsBridge interface defined in @kong-ui-public/analytics-utilities.
    • The plugin's query method is in charge of passing the query to the correct API for the host app's environment.
    • See the sandbox plugin sandbox-query-provider.ts for an example that simply returns static data rather than consuming an API.
  • The host application must supply peer dependencies for:
    • @kong-ui-public/analytics-chart
    • @kong-ui-public/analytics-utilities
    • @kong-ui-public/analytics-metric-provider
    • @kong-ui-public/i18n
    • @kong/kongponents
    • swrv
    • vue

Usage

Props

This component only takes two properties:

  • context : The time range that the dashboard should query and any additional filters that should be applied.
  • config : The dashboard config and layout.

For context filters and timeSpec see here.

If a timeSpec is not provided in the context object, the renderer will determine a default, which is currently 7 days.

Example

<DashboardRenderer
  :context="context"
  :config="config"
/>

with the following data:

import type { DashboardRendererContext, DashboardConfig } from '@kong-ui-public/dashboard-renderer'
import { DashboardRenderer, ChartTypes } from '@kong-ui-public/dashboard-renderer'

const context: DashboardRendererContext = {
  filters: [],
  timeSpec: {
    type: 'relative',
    time_range: '15M',
  },
}

const config: DashboardConfig = {
  // 4 x 1 grid
  gridSize: {
    cols: 4,
    rows: 1,
  },
  tiles: [
    {
      definition: {
        chart: {
          type: 'horizontal_bar',
        },
        // Request count by route
        query: {
          metrics: ['request_count'],
          dimensions: ['route']
        },
      },
      layout: {
        // Position at column 0, row 0
        position: {
          col: 0,
          row: 0,
        },
        // Spans 2 columns and 1 rows
        size: {
          col: 2,
          row: 1,
        }
      }
    },
    {
      definition: {
        chart: {
          type: 'top_n',
          chartTitle: 'Top N Table',
          description: 'Table description',
        },
        // Top 5 routes by request_count
        query: {
          metrics: ['request_count'],
          dimensions: ['route'],
          limit: 5,
        },
      },
      layout: {
        // Position at column 2, row 0
        position: {
          col: 2,
          row: 0,
        },
        // Spans 2 columns and 1 rows
        size: {
          col: 2,
          row: 1,
        }
      }
    },
  ],
}

Slotted content

<DashboardRenderer
  :context="context"
  :config="config"
>
  <!-- use the `id` set in the tile config for the slot name -->
  <template #slot-1>
    <div>
      <h3>Custom Slot</h3>
      <p>This is a slotted tile</p>
    </div>
  </template>
</DashboardRenderer>
import type { DashboardRendererContext, DashboardConfig } from '@kong-ui-public/dashboard-renderer'
import { DashboardRenderer, ChartTypes } from '@kong-ui-public/dashboard-renderer'

const context: DashboardRendererContext = {
  filters: [],
  timeSpec: {
    type: 'relative',
    time_range: '15M',
  },
}

const config: DashboardConfig = {
  // 4 x 1 grid
  gridSize: {
    cols: 4,
    rows: 1,
  },
  tiles: [
    {
      // Line chart
      definition: {
        chart: {
          type: 'timeseries_line',
        },
        // requests by status code over time
        query: {
          metrics: ['request_count'],
          dimensions: ['status_code', 'time']
        },
      },
      layout: {
        // Position at column 0, row 0
        position: {
          col: 0,
          row: 0,
        },
        // Spans 2 columns and 1 rows
        size: {
          col: 2,
          row: 1,
        }
      }
    },
    {
      // Slottable tile
      definition: {
        chart: {
          type: 'slottable',
          id: 'slot-1' // slot name
        },
        query: {},
      },
      layout: {
        // Position at column 2, row 0
        position: {
          col: 2,
          row: 0,
        },
        // Spans 2 columns and 1 rows
        size: {
          col: 2,
          row: 1,
        }
      }
    },
  ],
}

Auto-fit row content

This example will create a dynamically-sized row that fits to its content rather than being fixed at the configured row height. Note that this works because each chart is only rendered in 1 row; if a chart has fitToContent and layout.size.rows > 1, the fitToContent setting will be ignored.

Rendering AnalyticsChart components (e.g., horizontal bar, vertical bar, timeseries charts) with dynamic row heights may lead to undefined behavior. This option is best used with non-canvas charts (e.g., TopN charts).

import type { DashboardRendererContext, DashboardConfig } from '@kong-ui-public/dashboard-renderer'
import { DashboardRenderer, ChartTypes } from '@kong-ui-public/dashboard-renderer'

const context: DashboardRendererContext = {
  filters: [],
  timeSpec: {
    type: 'relative',
    time_range: '15M',
  },
}

const config: DashboardConfig = {
  // 4 x 1 grid
  gridSize: {
    cols: 4,
    rows: 1,
  },
  tiles: [
    {
      definition: {
        chart: {
          type: 'top_n',
          chartTitle: 'Top N chart of mock data',
          description: 'Description'
        },
        query: {},
      },
      layout: {
        position: {
          col: 0,
          row: 0,
        },
        size: {
          cols: 3,
          rows: 1,
          fitToContent: true,
        },
      },
    },
    {
      definition: {
        chart: {
          type: 'top_n',
          chartTitle: 'Top N chart of mock data',
          description: 'Description',
        },
        query: {},
      },
      layout: {
        position: {
          col: 3,
          row: 0,
        },
        size: {
          cols: 3,
          rows: 1,
          fitToContent: true,
        },
      },
    },
  ],
}
0.26.30

8 months ago

0.26.26

8 months ago

0.26.27

8 months ago

0.26.28

8 months ago

0.26.29

8 months ago

0.26.25

8 months ago

0.26.22

8 months ago

0.26.23

8 months ago

0.26.24

8 months ago

0.26.20

8 months ago

0.26.21

8 months ago

0.26.19

8 months ago

0.26.18

8 months ago

0.26.15

8 months ago

0.26.16

8 months ago

0.26.17

8 months ago

0.26.12

8 months ago

0.26.13

8 months ago

0.26.14

8 months ago

0.25.10

9 months ago

0.25.11

9 months ago

0.25.12

9 months ago

0.25.13

9 months ago

0.26.3

9 months ago

0.26.2

9 months ago

0.26.1

9 months ago

0.26.0

9 months ago

0.26.9

8 months ago

0.26.8

8 months ago

0.26.7

8 months ago

0.26.6

8 months ago

0.26.5

9 months ago

0.26.4

9 months ago

0.25.4

9 months ago

0.25.3

9 months ago

0.25.2

9 months ago

0.25.9

9 months ago

0.25.8

9 months ago

0.25.7

9 months ago

0.25.6

9 months ago

0.25.5

9 months ago

0.26.11

8 months ago

0.26.10

8 months ago

0.25.1

9 months ago

0.25.0

9 months ago

0.24.27

9 months ago

0.24.25

9 months ago

0.24.26

9 months ago

0.24.24

9 months ago

0.24.23

9 months ago

0.24.22

9 months ago

0.24.21

9 months ago

0.24.20

9 months ago

0.24.18

9 months ago

0.24.19

9 months ago

0.24.17

9 months ago

0.24.14

9 months ago

0.24.16

9 months ago

0.24.15

9 months ago

0.24.9

9 months ago

0.24.8

9 months ago

0.24.13

9 months ago

0.24.10

9 months ago

0.24.12

9 months ago

0.24.11

9 months ago

0.24.7

9 months ago

0.24.5

10 months ago

0.24.4

10 months ago

0.24.3

10 months ago

0.24.2

10 months ago

0.24.6

10 months ago

0.24.1

10 months ago

0.24.0

10 months ago

0.23.52

10 months ago

0.23.51

10 months ago

0.23.50

10 months ago

0.23.49

10 months ago

0.23.48

10 months ago

0.22.7

1 year ago

0.22.6

1 year ago

0.22.5

1 year ago

0.22.4

1 year ago

0.22.3

1 year ago

0.22.2

1 year ago

0.22.1

1 year ago

0.22.0

1 year ago

0.23.46

10 months ago

0.23.45

10 months ago

0.23.47

10 months ago

0.23.42

10 months ago

0.23.41

10 months ago

0.23.44

10 months ago

0.23.43

10 months ago

0.23.40

10 months ago

0.21.27

1 year ago

0.21.28

1 year ago

0.21.25

1 year ago

0.21.26

1 year ago

0.21.24

1 year ago

0.23.39

10 months ago

0.23.38

10 months ago

0.23.35

10 months ago

0.23.34

11 months ago

0.23.37

10 months ago

0.23.36

10 months ago

0.23.31

11 months ago

0.23.30

11 months ago

0.23.33

11 months ago

0.23.32

11 months ago

0.23.28

11 months ago

0.23.27

11 months ago

0.23.29

11 months ago

0.23.24

11 months ago

0.23.23

11 months ago

0.23.26

11 months ago

0.23.25

11 months ago

0.23.20

11 months ago

0.23.22

11 months ago

0.23.21

11 months ago

0.23.17

11 months ago

0.23.16

11 months ago

0.23.19

11 months ago

0.23.18

11 months ago

0.23.13

12 months ago

0.23.12

12 months ago

0.23.15

12 months ago

0.23.14

12 months ago

0.23.11

12 months ago

0.23.10

12 months ago

0.23.6

12 months ago

0.23.5

12 months ago

0.23.4

12 months ago

0.23.3

12 months ago

0.23.2

1 year ago

0.23.1

1 year ago

0.23.0

1 year ago

0.23.9

12 months ago

0.23.8

12 months ago

0.23.7

12 months ago

0.21.23

1 year ago

0.21.21

1 year ago

0.21.22

1 year ago

0.21.20

1 year ago

0.21.18

1 year ago

0.21.19

1 year ago

0.21.17

1 year ago

0.21.16

1 year ago

0.21.14

1 year ago

0.21.15

1 year ago

0.21.13

1 year ago

0.21.12

1 year ago

0.21.10

1 year ago

0.21.11

1 year ago

0.21.8

1 year ago

0.21.9

1 year ago

0.21.7

1 year ago

0.21.6

1 year ago

0.21.5

1 year ago

0.21.4

1 year ago

0.21.3

1 year ago

0.21.2

1 year ago

0.21.1

1 year ago

0.21.0

1 year ago

0.20.5

1 year ago

0.20.4

1 year ago

0.20.3

1 year ago

0.20.2

1 year ago

0.20.1

1 year ago

0.20.0

1 year ago

0.19.1

1 year ago

0.18.9

1 year ago

0.19.0

1 year ago

0.18.8

1 year ago

0.18.7

1 year ago

0.18.5

1 year ago

0.18.6

1 year ago

0.18.2

1 year ago

0.18.3

1 year ago

0.18.4

1 year ago

0.18.1

1 year ago

0.17.4

1 year ago

0.18.0

1 year ago

0.17.3

1 year ago

0.17.2

1 year ago

0.17.1

1 year ago

0.17.0

1 year ago

0.16.1

1 year ago

0.15.4

1 year ago

0.15.2

1 year ago

0.15.3

1 year ago

0.16.0

1 year ago

0.14.5

1 year ago

0.14.6

1 year ago

0.14.4

1 year ago

0.15.0

1 year ago

0.15.1

1 year ago

0.14.0

1 year ago

0.14.1

1 year ago

0.14.2

1 year ago

0.14.3

1 year ago

0.13.0

1 year ago

0.13.1

1 year ago

0.13.2

1 year ago

0.13.3

1 year ago

0.12.0

1 year ago

0.11.0

1 year ago

0.11.1

1 year ago

0.10.3

1 year ago

0.10.4

1 year ago

0.10.5

1 year ago

0.10.6

1 year ago

0.10.7

1 year ago

0.10.8

1 year ago

0.10.2

1 year ago

0.10.1

1 year ago

0.10.0

1 year ago

0.8.2

1 year ago

0.9.0

1 year ago

0.8.1

1 year ago

0.8.0

1 year ago

0.7.18

1 year ago

0.7.17

1 year ago

0.7.15

1 year ago

0.7.16

1 year ago

0.7.14

1 year ago

0.7.9

1 year ago

0.7.11

1 year ago

0.7.10

1 year ago

0.7.13

1 year ago

0.7.12

1 year ago

0.7.6

1 year ago

0.7.5

1 year ago

0.7.8

1 year ago

0.7.7

1 year ago

0.5.10

1 year ago

0.7.2

1 year ago

0.7.1

1 year ago

0.7.4

1 year ago

0.7.3

1 year ago

0.7.0

1 year ago

0.6.1

1 year ago

0.6.0

1 year ago

0.5.8

1 year ago

0.5.9

1 year ago

0.5.7

1 year ago

0.5.6

1 year ago

0.5.5

1 year ago

0.5.4

1 year ago

0.5.3

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.5.0

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.2

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.20

1 year ago

0.3.24

1 year ago

0.3.23

1 year ago

0.3.22

1 year ago

0.3.21

1 year ago

0.3.19

1 year ago

0.3.18

1 year ago

0.3.17

1 year ago

0.3.16

1 year ago

0.3.15

1 year ago

0.3.14

1 year ago

0.3.13

1 year ago

0.3.12

1 year ago

0.3.11

1 year ago

0.3.10

1 year ago

0.3.9

1 year ago

0.3.6

1 year ago

0.3.8

1 year ago

0.3.7

1 year ago

0.3.5

1 year ago

0.3.4

1 year ago

0.3.2

1 year ago

0.3.3

1 year ago

0.3.1

1 year ago

0.3.0

1 year ago

0.2.28

1 year ago

0.2.27

1 year ago

0.2.26

1 year ago

0.2.25

1 year ago

0.2.24

1 year ago

0.2.23

1 year ago

0.2.22

1 year ago

0.2.21

1 year ago

0.2.20

1 year ago

0.2.19

1 year ago

0.2.18

1 year ago

0.2.17

2 years ago

0.2.16

2 years ago

0.2.15

2 years ago

0.2.14

2 years ago

0.2.13

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.9

2 years ago

0.2.7

2 years ago

0.2.8

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.14

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.1

2 years ago