UNPKG

@studion/infra-code-blocks

Version:
78 lines (77 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSloDashboard = createSloDashboard; const merge_with_defaults_1 = require("../../../shared/merge-with-defaults"); const builder_1 = require("./builder"); const availability_1 = require("../panels/availability"); const success_rate_1 = require("../panels/success-rate"); const latency_1 = require("../panels/latency"); const defaults = { target: 0.99, window: '30d', shortWindow: '5m', targetLatency: 250, dashboardConfig: {}, }; function createSloDashboard(config) { const argsWithDefaults = (0, merge_with_defaults_1.mergeWithDefaults)(defaults, config); const { target, window, shortWindow, targetLatency, ampNamespace, dataSourceName, filter, } = argsWithDefaults; return new builder_1.GrafanaDashboardBuilder(config.name) .withConfig(argsWithDefaults.dashboardConfig) .withTitle(argsWithDefaults.title) .addPanel((0, availability_1.createAvailabilityPanel)({ target, window, ampNamespace, dataSourceName })) .addPanel((0, availability_1.createAvailabilityBurnRatePanel)({ target, window, ampNamespace, dataSourceName, })) .addPanel((0, success_rate_1.createSuccessRatePanel)({ target, window, filter, ampNamespace, dataSourceName, })) .addPanel((0, success_rate_1.createSuccessRateTimeSeriesPanel)({ shortWindow, filter, ampNamespace, dataSourceName, })) .addPanel((0, success_rate_1.createSuccessRateBurnRatePanel)({ target, filter, ampNamespace, dataSourceName, })) .addPanel((0, latency_1.createLatencyPanel)({ target, window, targetLatency, filter, ampNamespace, dataSourceName, })) .addPanel((0, latency_1.createLatencyPercentilePanel)({ target, shortWindow, filter, ampNamespace, dataSourceName, })) .addPanel((0, latency_1.createLatencyPercentagePanel)({ targetLatency, shortWindow, filter, ampNamespace, dataSourceName, })) .addPanel((0, latency_1.createLatencyBurnRatePanel)({ target, targetLatency, ampNamespace, dataSourceName, })) .build(); }