UNPKG

@studion/infra-code-blocks

Version:
136 lines (135 loc) 3.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStatPercentagePanel = createStatPercentagePanel; exports.createTimeSeriesPercentagePanel = createTimeSeriesPercentagePanel; exports.createTimeSeriesPanel = createTimeSeriesPanel; exports.createBurnRatePanel = createBurnRatePanel; exports.createTablePanel = createTablePanel; exports.createTracesPanel = createTracesPanel; const percentageFieldConfig = { unit: 'percent', min: 0, max: 100, }; function createStatPercentagePanel(title, position, dataSource, metric) { return { title, gridPos: position, type: 'stat', datasource: dataSource, targets: [ { expr: metric.query, legendFormat: metric.label, }, ], fieldConfig: { defaults: { ...percentageFieldConfig, ...(metric.thresholds ? { thresholds: { mode: 'absolute', steps: metric.thresholds, }, } : {}), }, }, }; } function createTimeSeriesPercentagePanel(title, position, dataSource, metric) { return createTimeSeriesPanel(title, position, dataSource, metric, percentageFieldConfig.unit, percentageFieldConfig.min, percentageFieldConfig.max); } function createTimeSeriesPanel(title, position, dataSource, metric, unit, min, max) { return { title, type: 'timeseries', datasource: dataSource, gridPos: position, targets: [ { expr: metric.query, legendFormat: metric.label, }, ], fieldConfig: { defaults: { unit, min, max, ...(metric.thresholds ? { thresholds: { mode: 'absolute', steps: metric.thresholds, }, } : {}), }, }, }; } function createBurnRatePanel(title, position, dataSource, metric) { return { type: 'stat', title, gridPos: position, datasource: dataSource, targets: [ { expr: metric.query, legendFormat: metric.label, }, ], options: { reduceOptions: { calcs: ['last'], fields: '', values: false, }, colorMode: 'value', graphMode: 'none', textMode: 'value', }, fieldConfig: { defaults: { unit: 'none', thresholds: { mode: 'absolute', steps: [ { color: 'green', value: null }, { color: 'orange', value: 1 }, { color: 'red', value: 2 }, ], }, }, }, }; } function createTablePanel(title, position, dataSource, targets, transformations, overrides) { return { type: 'table', title, gridPos: position, datasource: dataSource, targets, transformations, fieldConfig: { defaults: {}, overrides, }, }; } function createTracesPanel(title, position, dataSource, targets) { return { type: 'traces', title, gridPos: position, datasource: dataSource, targets, fieldConfig: { defaults: {}, }, }; }