9.0.10 • Published 6 months ago

@kong-ui-public/analytics-chart v9.0.10

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

@kong-ui-public/analytics-chart

Dynamic chart component for kong analytics.

Features

  • Display kong analytics in a graph.

Requirements

  • vue must be initialized in the host application
  • @kong-ui-public/i18n must be available as a dependency in the host application.

Install

Install the component in your host application

yarn add @kong-ui-public/analytics-chart

AnalyticsChart

Props

allowCsvExport

  • type: boolean
  • required: false

chartData

chartOptions

  • type: AnalyticsChartOptions
  • required: true
  • stacked option applies to timeseries charts as well as vertical/horizontal bar charts.
  • fill only applies to time series line chart
  • chartTypes defined here
  • chartDatasetColors are optional
    • If no colors are provided, the default color palette will be used
    • If custom colors are needed you may provide a custom color palette in the form of:
      • Array of hex color codes which will be cycled through for each dataset:
        const colors = [
          '#a86cd5',
          '#6a86d2',
          '#00bbf9',
          '#00c4b0',
          '#ffdf15',
        ]
      • A mapping of dataset labels to hex color code:
          const statusCodeColors = {
            '200': '#a86cd5',
            '300': '#6a86d2',
            '400': '#00bbf9',
          }
  • chartLegendSortFn
    • Exposed sorting fn for datasets as they appear in the legend
    • Sorts in descending order of raw value by default.
  • chartTooltipSortFn
    • Exposed sorting fn for datasets as they appear in the tooltip
    • Sorts in descending order of raw value by default.

chartTitle

  • type: string
  • required: true

emptyStateTitle

  • type: string
  • required: false

emptyStateDescription

  • type: string
  • required: false

tooltipTitle

  • type: string
  • required: true

legendPosition

showLegendValues

  • type: boolean
  • required: false
  • default: true
  • Show the sum of each dataset in the legend

timeseriesZoom

  • type: boolean
  • required: false
  • default: false
  • Enable zooming on timeseries charts

Events

@zoom-time-range - event emitted representing a new time range on zoom selection see AbsoluteTimeRangeV4

Usage Example AnalyticsChart

<template>
  <AnalyticsChart
    :chart-data="chartData"
    :chart-options="chartOptions"
    tooltip-title="Total Requests"
    chart-title="Requests by Service"
    :legend-position="legendPosition"
  />
</template>

<script>
import { AnalyticsChart } from '@kong-ui-public/analytics-chart'
import type { ExploreResultV4 } from '@kong-ui-public/analytics-utilities'
import type { AnalyticsChartOptions } from '@kong-ui-public/analytics-chart'

import { defineComponent, ref } from 'vue'

export default defineComponent({
  components: {
    AnalyticsChart,
  },
  setup() {
    const chartData = ref<ExploreResultV4>({
      data: [
        {
          timestamp: '2023-04-24T10:27:22.798Z',
          event: {
            Service: 'service-a-id',
            TotalRequests: 849,
          },
        },
        {
          timestamp: '2023-04-24T10:27:22.798Z',
          event: {
            Service: 'service-b-id',
            TotalRequests: 5434,
          },
        },
        // more data...
      ],
      meta: {
        start_ms: 1682332042798,
        end_ms: 1682353642798,
        granularity_ms: 3600000,
        query_id: '12345',
        display: {
          Service: {
            'service-a-id': { name: 'Service A' },
            'service-b-id': { name: 'Service B' },
        },
        metric_names: ['TotalRequests'],
        metric_units: {
          TotalRequests: 'requests',
        },
        truncated: false,
        limit: 1000,
      },
    })

    const chartOptions = ref<AnalyticsChartOptions>({
      type: 'timeseries_line',
      stacked: true,
      fill: false
    })

    const legendPosition = ref(ChartLegendPosition.Right)


    return {
      chartData,
      chartOptions,
      legendPosition
    }
  },
})
</script>

SimpleChart

Props

chartData

chartOptions

emptyStateTitle

  • type: string
  • required: false

metricDisplay

Optional value which can be any one of the following:

  • Hidden: will only show the outer doughnut chart
  • SingleMetric: displays only the large metric value
  • Full: displays both the large metric and subtext

reverseDataset

Optional. Determines the order of the datasets. In the case of a Gauge Chart, it reverses the display order of the two color fills.

  • type: boolean
  • required: false

numerator

Optional. Array index which specifies the dataset value to be shown in the center of the Gauge.

  • type: number
  • required: false

Usage Example SimpleChart

<template>
  <SimpleChart
    :chart-data="chartData"
    :chart-options="simpleChartOptions"
  />
</template>

<script>
import { SimpleChart } from '@kong-ui-public/analytics-chart'
import type { ExploreResultV4 } from '@kong-ui-public/analytics-utilities'
import type { SimpleChartOptions } from '@kong-ui-public/analytics-chart'

import { defineComponent, ref } from 'vue'

export default defineComponent({
  components: {
    SimpleChart,
  },
  setup() {
    const chartData = ref<ExploreResultV4>({
      data: [
        {
          timestamp: '2023-04-24T10:27:22.798Z',
          event: {
            Service: 'service-a-id',
            TotalRequests: 849,
          },
        },
        {
          timestamp: '2023-04-24T10:27:22.798Z',
          event: {
            Service: 'service-b-id',
            TotalRequests: 5434,
          },
        },
      ],
      meta: {
        start_ms: 1682332042798,
        end_ms: 1682353642798,
        granularity_ms: 21600000,
        query_id: '12345',
        display: {
          Service: {
            'service-a-id': { name: 'Service A' },
            'service-b-id': { name: 'Service B' },
        },
        metric_names: ['TotalRequests'],
        metric_units: {
          TotalRequests: 'requests',
        },
      },
    })

    const chartOptions = ref<SimpleChartOptions>({
      type: 'gauge',
      metricDisplay: ChartMetricDisplay.Full
    })

    return {
      chartData,
      chartOptions,
    }
  },
})
</script>

CsvExportButton

Props

data

Chart data to be exported

text

Text to appear in the button

  • type: string
  • required: false
  • default: 'Export'

buttonAppearance

Text to appear in the button

  • type: 'primary' | 'secondary' | 'tertiary' | 'danger'
  • required: false
  • default: 'tertiary'

filenamePrefix

Resulting csv filename

  • type: string
  • required: false
  • default: 'Chart Export'

Usage Example CsvExportButton

<template>
  <CsvExportButton
    :data="(chartData as ExploreResultV4)"
    :filename-prefix="filenamePrefix"
  />
</template>

<script setup lang="ts">

import type { ExploreResultV4 } from '@kong-ui-public/analytics-utilities'
import { CsvExportButton } from '@kong-ui-public/analytics-chart'

const chartData = ref<ExploreResultV4>({
  data: [
    {
      timestamp: '2023-04-24T10:27:22.798Z',
      event: {
        Service: 'service-a-id',
        TotalRequests: 849,
      },
    },
    {
      timestamp: '2023-04-24T10:27:22.798Z',
      event: {
        Service: 'service-b-id',
        TotalRequests: 5434,
      },
    },
  ],
  meta: {
    start_ms: 1682332042798,
    end_ms: 1682353642798,
    granularity_ms: 3600000,
    query_id: '12345',
    display: {
      Service: {
        'service-a-id': { name: 'Service A' },
        'service-b-id': { name: 'Service B' },
    },
    metric_names: ['TotalRequests'],
    metric_units: {
      TotalRequests: 'requests',
    },
  },
})

const fileName = ref('exportFilename')

</script>

CsvExportModal

Props

chartData

Chart data to be exported

filename

Resulting csv filename

  • type: string
  • required: true

modalDescription

Desctiption text that appears in the modal

  • type: string
  • required: false
  • default: 'Exports a CSV of the data represented in the chart.'

CsvExportModal Events

@toggle-modal event is emitted when the modal is toggled (dismissed)

Usage Example CsvExportModal

<template>
  <button @click.prevent="exportCsv">
    Export to CSV
  </button>

  <CsvExportModal
    v-if="exportModalVisible"
    :chart-data="chartData"
    filename="exportCsvFilename"
    @toggle-modal="setModalVisibility"
  />
</template>

<script setup lang="ts">

import type { ExploreResultV4 } from '@kong-ui-public/analytics-utilities'
import { CsvExportModal } from '@kong-ui-public/analytics-chart'

const exportModalVisible = ref(false)

const setModalVisibility = (val: boolean) => {
  exportModalVisible.value = val
}
const exportCsv = () => {
  setModalVisibility(true)
}

const chartData = ref<ExploreResultV4>({
  data: [
    {
      timestamp: '2023-04-24T10:27:22.798Z',
      event: {
        Service: 'service-a-id',
        TotalRequests: 849,
      },
    },
    {
      timestamp: '2023-04-24T10:27:22.798Z',
      event: {
        Service: 'service-b-id',
        TotalRequests: 5434,
      },
    },
  ],
  meta: {
    start_ms: 1682332042798,
    end_ms: 1682353642798,
    granularity_ms: 3600000,
    query_id: '12345',
    display: {
      Service: {
        'service-a-id': { name: 'Service A' },
        'service-b-id': { name: 'Service B' }
      },
    },
    metric_names: ['TotalRequests'],
    metric_units: {
      TotalRequests: 'requests',
    },
  },
})

const fileName = ref('exportFilename')

</script>
6.1.6

10 months ago

6.1.5

10 months ago

6.1.8

10 months ago

6.1.7

10 months ago

6.1.9

10 months ago

9.0.9

7 months ago

9.0.8

7 months ago

9.0.7

7 months ago

9.0.6

7 months ago

9.0.5

7 months ago

9.0.4

7 months ago

9.0.3

8 months ago

5.8.4

12 months ago

5.8.3

1 year ago

5.8.2

1 year ago

5.8.1

1 year ago

5.8.0

1 year ago

9.0.2

8 months ago

9.0.1

8 months ago

9.0.0

8 months ago

6.1.10

10 months ago

7.0.8

9 months ago

7.0.7

9 months ago

7.0.6

9 months ago

7.0.5

9 months ago

6.2.4

10 months ago

5.4.9

1 year ago

5.4.8

1 year ago

5.4.7

1 year ago

5.4.6

1 year ago

5.4.5

1 year ago

5.4.4

1 year ago

5.4.3

1 year ago

5.4.2

1 year ago

5.4.1

1 year ago

5.4.0

1 year ago

6.2.1

10 months ago

6.2.0

10 months ago

6.2.3

10 months ago

6.2.2

10 months ago

7.0.0

10 months ago

7.0.4

9 months ago

7.0.3

9 months ago

7.0.2

9 months ago

7.0.1

9 months ago

5.2.2

1 year ago

5.2.1

1 year ago

6.0.1

11 months ago

6.0.0

11 months ago

6.0.3

11 months ago

6.0.2

11 months ago

9.0.10

6 months ago

8.1.0

9 months ago

8.1.2

9 months ago

8.1.1

9 months ago

5.3.0

1 year ago

6.1.0

11 months ago

6.1.2

11 months ago

6.1.1

11 months ago

6.1.4

10 months ago

6.1.3

11 months ago

8.1.8

8 months ago

8.1.7

8 months ago

8.1.9

8 months ago

8.1.4

8 months ago

8.1.3

8 months ago

8.1.6

8 months ago

8.1.5

8 months ago

5.7.5

1 year ago

5.7.4

1 year ago

5.7.3

1 year ago

5.7.2

1 year ago

5.7.1

1 year ago

5.7.0

1 year ago

8.1.11

8 months ago

8.1.10

8 months ago

5.4.12

1 year ago

5.4.13

1 year ago

5.4.10

1 year ago

5.4.11

1 year ago

5.6.2

1 year ago

5.6.1

1 year ago

5.6.0

1 year ago

8.0.0

9 months ago

5.9.2

11 months ago

5.9.1

11 months ago

5.9.0

12 months ago

5.5.3

1 year ago

5.5.2

1 year ago

5.5.1

1 year ago

5.5.0

1 year ago

5.1.9

1 year ago

5.1.12

1 year ago

5.1.11

1 year ago

5.1.10

1 year ago

5.2.0

1 year ago

5.1.8

1 year ago

5.1.7

1 year ago

5.1.6

1 year ago

5.1.5

1 year ago

5.1.4

1 year ago

5.1.3

1 year ago

5.1.2

1 year ago

5.1.1

1 year ago

5.1.0

1 year ago

5.0.11

1 year ago

5.0.12

1 year ago

5.0.9

1 year ago

5.0.8

1 year ago

5.0.7

1 year ago

5.0.6

1 year ago

5.0.5

1 year ago

5.0.4

1 year ago

5.0.3

1 year ago

5.0.2

1 year ago

5.0.1

1 year ago

5.0.10

1 year ago

5.0.0

1 year ago

4.6.22

1 year ago

4.6.23

1 year ago

4.6.20

1 year ago

4.6.21

1 year ago

4.6.26

1 year ago

4.6.24

1 year ago

4.6.25

1 year ago

4.6.19

1 year ago

4.6.18

1 year ago

4.6.16

1 year ago

4.6.17

1 year ago

4.6.15

1 year ago

4.6.12

1 year ago

4.6.13

1 year ago

4.6.14

1 year ago

4.6.9

1 year ago

4.6.11

1 year ago

4.6.10

1 year ago

4.6.7

1 year ago

4.6.6

1 year ago

4.6.8

1 year ago

4.6.5

1 year ago

4.6.1

1 year ago

4.6.0

1 year ago

4.6.3

1 year ago

4.6.2

1 year ago

4.6.4

1 year ago

4.5.2

1 year ago

4.5.1

1 year ago

4.4.1

1 year ago

4.4.0

1 year ago

4.4.3

1 year ago

4.4.2

1 year ago

4.5.0

1 year ago

4.3.0

1 year ago

4.2.29

1 year ago

4.2.31

1 year ago

4.2.30

1 year ago

4.1.8

2 years ago

4.1.7

2 years ago

4.1.9

2 years ago

4.1.4

2 years ago

4.1.3

2 years ago

4.1.6

2 years ago

4.1.5

2 years ago

4.1.0

2 years ago

4.1.2

2 years ago

4.1.1

2 years ago

4.2.20

1 year ago

4.2.21

1 year ago

4.2.22

1 year ago

4.2.23

1 year ago

4.2.28

1 year ago

4.2.24

1 year ago

4.2.25

1 year ago

4.2.26

1 year ago

4.2.27

1 year ago

4.2.10

1 year ago

4.2.11

1 year ago

4.2.12

1 year ago

4.2.17

1 year ago

4.2.18

1 year ago

4.2.19

1 year ago

4.2.13

1 year ago

4.2.14

1 year ago

4.2.15

1 year ago

4.2.16

1 year ago

4.0.19

2 years ago

4.0.16

2 years ago

4.0.18

2 years ago

4.0.17

2 years ago

4.2.3

1 year ago

4.2.2

1 year ago

4.2.5

1 year ago

4.2.4

1 year ago

4.2.1

1 year ago

4.2.0

1 year ago

4.2.7

1 year ago

4.2.6

1 year ago

4.2.9

1 year ago

4.2.8

1 year ago

4.1.10

1 year ago

4.0.15

2 years ago

4.0.12

2 years ago

4.0.11

2 years ago

4.0.14

2 years ago

4.0.13

2 years ago

4.0.10

2 years ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.7

2 years ago

4.0.5

2 years ago

4.0.6

2 years ago

4.0.4

2 years ago

4.0.3

2 years ago

3.0.13

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.2

2 years ago

3.0.12

2 years ago

3.0.11

2 years ago

3.0.10

2 years ago

3.0.9

2 years ago

3.0.8

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

2.5.5

2 years ago

3.0.0

2 years ago

2.5.4

2 years ago

2.5.3

2 years ago

2.5.2

2 years ago

2.5.1

2 years ago

2.5.0

2 years ago

2.4.3

2 years ago

2.4.5

2 years ago

2.4.4

2 years ago

2.4.7

2 years ago

2.4.6

2 years ago

2.4.8

2 years ago

2.4.2

2 years ago

2.4.1

2 years ago

2.4.0

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.0

2 years ago

2.2.3

2 years ago

2.2.2

2 years ago

2.2.5

2 years ago

2.2.4

2 years ago

2.2.1

2 years ago

2.2.0

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.1.0

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.4

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.3.6

2 years ago

1.3.5

2 years ago

1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.1.16

2 years ago

1.1.15

2 years ago

1.1.17

2 years ago

1.2.0

2 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.14

2 years ago

1.1.13

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

0.25.0

2 years ago

0.24.10

2 years ago

0.24.9

2 years ago

0.24.8

2 years ago

0.24.7

2 years ago

0.24.6

2 years ago

0.24.5

2 years ago

0.24.4

2 years ago

0.24.3

2 years ago

0.24.2

2 years ago

0.24.1

2 years ago

0.24.0

2 years ago

0.23.3

2 years ago

0.23.2

2 years ago

0.23.1

2 years ago

0.23.0

2 years ago

0.22.1

2 years ago

0.22.0

2 years ago

0.20.0

2 years ago

0.21.0

2 years ago

0.18.1

2 years ago

0.19.0

2 years ago

0.17.5

2 years ago

0.18.0

2 years ago

0.17.4

2 years ago

0.17.3

2 years ago

0.17.2

2 years ago

0.17.1

2 years ago

0.8.9

2 years ago

0.8.8

2 years ago

0.8.5

2 years ago

0.8.4

2 years ago

0.8.7

2 years ago

0.8.6

2 years ago

0.17.0

2 years ago

0.7.2

2 years ago

0.7.1

2 years ago

0.7.3

2 years ago

0.7.0

2 years ago

0.9.8

2 years ago

0.9.7

2 years ago

0.9.9

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.9.6

2 years ago

0.9.5

2 years ago

0.10.1

2 years ago

0.10.2

2 years ago

0.10.3

2 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.6

2 years ago

0.10.7

2 years ago

0.10.8

2 years ago

0.9.20

2 years ago

0.10.0

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.15.4

2 years ago

0.15.5

2 years ago

0.15.0

2 years ago

0.15.1

2 years ago

0.15.2

2 years ago

0.15.3

2 years ago

0.5.0

2 years ago

0.16.10

2 years ago

0.16.11

2 years ago

0.16.12

2 years ago

0.16.13

2 years ago

0.16.3

2 years ago

0.16.4

2 years ago

0.16.5

2 years ago

0.16.6

2 years ago

0.16.7

2 years ago

0.16.8

2 years ago

0.16.9

2 years ago

0.16.0

2 years ago

0.16.1

2 years ago

0.16.2

2 years ago

0.6.0

2 years ago

0.13.6

2 years ago

0.13.0

2 years ago

0.13.1

2 years ago

0.13.2

2 years ago

0.13.3

2 years ago

0.13.4

2 years ago

0.13.5

2 years ago

0.3.0

2 years ago

0.3.1

2 years ago

0.14.0

2 years ago

0.14.1

2 years ago

0.14.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.9.12

2 years ago

0.9.13

2 years ago

0.9.14

2 years ago

0.9.15

2 years ago

0.9.10

2 years ago

0.9.11

2 years ago

0.9.16

2 years ago

0.9.17

2 years ago

0.9.18

2 years ago

0.9.19

2 years ago

0.11.0

2 years ago

0.11.1

2 years ago

0.11.2

2 years ago

0.11.3

2 years ago

0.11.4

2 years ago

0.11.5

2 years ago

0.11.6

2 years ago

0.11.7

2 years ago

0.8.30

2 years ago

0.8.31

2 years ago

0.9.0

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.8.23

2 years ago

0.8.22

2 years ago

0.8.25

2 years ago

0.8.24

2 years ago

0.8.21

2 years ago

0.8.20

2 years ago

0.8.27

2 years ago

0.8.26

2 years ago

0.8.29

2 years ago

0.8.28

2 years ago

0.12.0

2 years ago

0.12.1

2 years ago

0.12.2

2 years ago

0.12.3

2 years ago

0.8.12

2 years ago

0.8.11

2 years ago

0.8.14

2 years ago

0.8.13

2 years ago

0.8.10

2 years ago

0.8.19

2 years ago

0.8.16

2 years ago

0.8.15

2 years ago

0.8.18

2 years ago

0.8.17

2 years ago

0.2.1

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.1.2

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.0

3 years ago