Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions common-lib/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 0.5.0
- [Panels] feat: Move style choices (colors, line styles) to design tokens directory.

# 0.4.3
- [Signal] fix: No longer aggregates histogram signals after histogram_quantile() as it is pointless aggregation. Aggregation before applying histogram_quantile() is kept and works as expected.

Expand Down
1 change: 1 addition & 0 deletions common-lib/common/main.libsonnet
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
annotations: import './annotations/main.libsonnet',
tokens: import './tokens/main.libsonnet',
panels: import './panels.libsonnet',
variables: import './variables/variables.libsonnet',
utils: import './utils.libsonnet',
Expand Down
20 changes: 17 additions & 3 deletions common-lib/common/panels/generic/base.libsonnet
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
local g = import '../../g.libsonnet';

local tokens = import '../../tokens/main.libsonnet';
local timeSeries = g.panel.timeSeries;
local fieldOverride = g.panel.timeSeries.fieldOverride;
local custom = timeSeries.fieldConfig.defaults.custom;
local defaults = timeSeries.fieldConfig.defaults;
local options = timeSeries.options;
local standardOptions = timeSeries.standardOptions;

// This is base of ALL panels in the common lib
// This is the base of ALL panels in the common lib
{
new(targets, description=''):
// hidden field to hold styles modifiers
Expand All @@ -22,6 +23,19 @@ local options = timeSeries.options;
) else {})
+ self.stylize(),

stylize(): {},
stylize():
standardOptions.color.withMode(tokens.base.colors.mode.default)
+ standardOptions.color.withFixedColor(tokens.base.colors.palette.default)
// remove 0-80(green), >80 red threshold by default.
{
fieldConfig+: {
defaults+: {
thresholds: {
mode: 'absolute',
steps: [],
},
},
},
},

}
22 changes: 20 additions & 2 deletions common-lib/common/panels/generic/stat/base.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local stat = g.panel.stat;
local base = import '../base.libsonnet';

Expand All @@ -9,6 +10,23 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
+ stat.standardOptions.color.withMode('fixed')
+ stat.standardOptions.color.withFixedColor('text'),
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.single)
+ stat.standardOptions.color.withFixedColor(tokens.base.colors.palette.default)
// remove 0-80(green), >80 red threshold by default.
+ {
fieldConfig+: {
defaults+: {

thresholds: {
mode: 'absolute',
steps: [
{
color: tokens.base.colors.palette.default,
value: null,
},
],
},
},
},
},
}
5 changes: 3 additions & 2 deletions common-lib/common/panels/generic/stat/info.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local base = import './base.libsonnet';
local stat = g.panel.stat;
// Simple info panel prototype with text or count of things.
Expand All @@ -7,8 +8,8 @@ base {
stylize(allLayers=true):
(if allLayers then super.stylize() else {})
// Style choice: No color for simple text panels by default
+ stat.options.withColorMode('fixed')
+ stat.standardOptions.color.withFixedColor('text')
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.single)
+ stat.standardOptions.color.withFixedColor(tokens.base.colors.palette.text)
// Style choice: No graph
+ stat.options.withGraphMode('none')
// Show last value by default, not mean.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local stat = g.panel.stat;
local base = import './base.libsonnet';
// This panel can be used to display gauge metrics with possible values range 0-100%.
Expand All @@ -11,7 +12,7 @@ base {
+ stat.standardOptions.withUnit('percent')
+ stat.options.withColorMode('value')
// Change color from blue(cold) to red(hot)
+ stat.standardOptions.color.withMode('continuous-BlYlRd')
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.coldhot)
+ stat.standardOptions.withMax(100)
+ stat.standardOptions.withMin(0)
// Show last value by default, not mean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ local timeSeries = g.panel.timeSeries;
local percentage = import '../timeSeries/percentage.libsonnet';
local fieldOverride = g.panel.timeSeries.fieldOverride;
local fieldConfig = g.panel.timeSeries.fieldConfig;
local tokens = import '../../../tokens/main.libsonnet';
local base = import './base.libsonnet';
// This panel can be used to display gauge metrics in table columns with unknown max/min values.
// Examples: Network bandwidth, RPS.
Expand All @@ -19,7 +20,7 @@ base {
+ fieldOverride.byName.withProperty('custom.cellOptions', { type: 'gauge', mode: 'basic' })
+ fieldOverride.byName.withProperty('fieldMinMax', true)
+ fieldOverride.byName.withPropertiesFromOptions(
timeSeries.standardOptions.color.withMode('continuous-BlYlRd')
timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.coldhot)
),
),
}
16 changes: 6 additions & 10 deletions common-lib/common/panels/generic/timeSeries/base.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';

local timeSeries = g.panel.timeSeries;
local fieldOverride = g.panel.timeSeries.fieldOverride;
Expand All @@ -14,16 +15,11 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
// Style choice: Make lines more thick
+ custom.withLineWidth(2)
// Style choice: Opacity level
+ custom.withFillOpacity(30)
// Style choice: Don't show points on lines
+ custom.withShowPoints('never')
// Style choice: Opacity gradient
+ custom.withGradientMode('opacity')
// Style choice: Smoother lines
+ custom.withLineInterpolation('smooth')
+ custom.withLineWidth(tokens.panels.timeSeries.lines.width.default)
+ custom.withFillOpacity(tokens.panels.timeSeries.lines.opacity.default)
+ custom.withShowPoints(tokens.panels.timeSeries.lines.showPoints.default)
+ custom.withGradientMode(tokens.panels.timeSeries.lines.gradientMode.default)
+ custom.withLineInterpolation(tokens.panels.timeSeries.lines.interpolation.default)
// Style choice: Show all values in tooltip, sorted
+ options.tooltip.withMode('multi')
+ options.tooltip.withSort('desc')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local timeSeries = g.panel.timeSeries;
local base = import './base.libsonnet';
// This panel can be used to display gauge metrics with possible values range 0-100%.
Expand All @@ -9,7 +10,7 @@ base {
+ timeSeries.standardOptions.withDecimals(1)
+ timeSeries.standardOptions.withUnit('percent')
// Change color from blue(cold) to red(hot)
+ timeSeries.standardOptions.color.withMode('continuous-BlYlRd')
+ timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.coldhot)
+ timeSeries.fieldConfig.defaults.custom.withGradientMode('scheme')
+ timeSeries.standardOptions.withMax(100)
+ timeSeries.standardOptions.withMin(0),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local timeSeries = g.panel.timeSeries;
local fieldOverride = g.panel.timeSeries.fieldOverride;
local fieldConfig = g.panel.timeSeries.fieldConfig;
Expand All @@ -15,8 +16,8 @@ local fieldConfig = g.panel.timeSeries.fieldConfig;
}
)
+ fieldConfig.defaults.custom.withFillOpacity(0)
+ timeSeries.standardOptions.color.withMode('fixed')
+ timeSeries.standardOptions.color.withFixedColor('light-orange'),
+ timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.single)
+ timeSeries.standardOptions.color.withFixedColor(tokens.base.colors.palette.threshold),
stylizeByRegexp(regexp):
timeSeries.standardOptions.withOverridesMixin(
fieldOverride.byRegexp.new(regexp)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local base = import './base.libsonnet';
local generic = import './main.libsonnet';
local timeSeries = g.panel.timeSeries;
Expand Down Expand Up @@ -51,8 +52,8 @@ base {
}
)
+ fieldConfig.defaults.custom.withFillOpacity(0)
+ timeSeries.standardOptions.color.withMode('fixed')
+ timeSeries.standardOptions.color.withFixedColor('light-purple'),
+ timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.single)
+ timeSeries.standardOptions.color.withFixedColor(tokens.base.colors.palette['light-purple']),
)
),
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/timeSeries/main.libsonnet';
local base = import './base.libsonnet';
local timeSeries = g.panel.timeSeries;
Expand All @@ -13,13 +14,13 @@ base {
super.new(title, targets, description)
+ self.stylize(),

stylize(allLayers=true, softMin=0, softMax=100, unit='Celsius'):
stylize(allLayers=true, softMin=0, softMax=100, unit='celsius'):
(if allLayers then super.stylize() else {})
+ timeSeries.fieldConfig.defaults.custom.withAxisSoftMax(softMax)
+ timeSeries.fieldConfig.defaults.custom.withAxisSoftMin(softMin)
+ timeSeries.standardOptions.withDecimals(1)
+ timeSeries.standardOptions.withUnit('celsius')
+ timeSeries.standardOptions.withUnit(unit)
// Change color from blue(cold) to red(hot)
+ timeSeries.standardOptions.color.withMode('continuous-BlYlRd')
+ timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.coldhot)
+ timeSeries.fieldConfig.defaults.custom.withGradientMode('scheme'),
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local base = import './base.libsonnet';
local statusHistory = g.panel.statusHistory;
base {
Expand All @@ -15,12 +16,12 @@ base {
options: {
'0': {
text: 'Down',
color: 'light-red',
color: tokens.base.colors.palette.critical,
index: 0,
},
'1': {
text: 'Up',
color: 'light-green',
color: tokens.base.colors.palette.ok,
index: 1,
},
},
Expand Down
5 changes: 3 additions & 2 deletions common-lib/common/panels/requests/stat/duration.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/stat/main.libsonnet';
local base = import './base.libsonnet';
local stat = g.panel.stat;
Expand All @@ -9,8 +10,8 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
+ stat.standardOptions.color.withMode('fixed')
+ stat.standardOptions.color.withFixedColor('light-blue')
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ stat.standardOptions.color.withFixedColor(tokens.base.colors.palette.duration)
+ stat.standardOptions.withUnit('s')
+ stat.options.withGraphMode('none'),
}
5 changes: 3 additions & 2 deletions common-lib/common/panels/requests/stat/errors.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/stat/main.libsonnet';
local base = import './base.libsonnet';
local stat = g.panel.stat;
Expand All @@ -10,8 +11,8 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
+ stat.standardOptions.color.withMode('fixed')
+ stat.standardOptions.color.withFixedColor('light-red')
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ stat.standardOptions.color.withFixedColor(tokens.base.colors.palette.errors)
+ stat.standardOptions.withNoValue('No errors')
+ stat.options.withGraphMode('none'),
}
5 changes: 3 additions & 2 deletions common-lib/common/panels/requests/stat/rate.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/stat/main.libsonnet';
local base = import './base.libsonnet';
local stat = g.panel.stat;
Expand All @@ -10,7 +11,7 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
+ stat.standardOptions.color.withMode('fixed')
+ stat.standardOptions.color.withFixedColor('light-purple')
+ stat.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ stat.standardOptions.color.withFixedColor(tokens.base.colors.palette.rate)
+ stat.options.withGraphMode('none'),
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local base = import '../../generic/timeSeries/base.libsonnet';

base {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/timeSeries/main.libsonnet';
local base = import './base.libsonnet';

base {
new(
title='Response time',
Expand All @@ -14,7 +16,7 @@ base {

stylize(allLayers=true):
(if allLayers then super.stylize() else {})
+ g.panel.timeSeries.standardOptions.color.withMode('fixed')
+ g.panel.timeSeries.standardOptions.color.withFixedColor('blue')
+ g.panel.timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ g.panel.timeSeries.standardOptions.color.withFixedColor(tokens.base.colors.palette.duration)
+ g.panel.timeSeries.standardOptions.withUnit('s'),
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local base = import './base.libsonnet';
base {
new(
Expand All @@ -16,9 +17,9 @@ base {
(if allLayers then super.stylize() else {})
+ timeSeries.fieldConfig.defaults.custom.withDrawStyle('bars')
+ timeSeries.queryOptions.withMaxDataPoints(100)
+ timeSeries.fieldConfig.defaults.custom.withFillOpacity(100)
+ timeSeries.fieldConfig.defaults.custom.withFillOpacity(tokens.panels.timeSeries.lines.opacity.full)
+ timeSeries.fieldConfig.defaults.custom.withStacking({ mode: 'normal' })
+ timeSeries.standardOptions.color.withMode('fixed')
+ timeSeries.standardOptions.color.withFixedColor('light-red')
+ timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ timeSeries.standardOptions.color.withFixedColor(tokens.base.colors.palette.errors)
+ timeSeries.standardOptions.withNoValue('No errors'),
}
5 changes: 3 additions & 2 deletions common-lib/common/panels/requests/timeSeries/rate.libsonnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local g = import '../../../g.libsonnet';
local tokens = import '../../../tokens/main.libsonnet';
local generic = import '../../generic/timeSeries/main.libsonnet';
local base = import './base.libsonnet';
base {
Expand All @@ -19,6 +20,6 @@ base {
+ g.panel.timeSeries.queryOptions.withMaxDataPoints(100)
+ g.panel.timeSeries.fieldConfig.defaults.custom.withFillOpacity(100)
+ g.panel.timeSeries.fieldConfig.defaults.custom.withStacking({ mode: 'normal' })
+ g.panel.timeSeries.standardOptions.color.withMode('fixed')
+ g.panel.timeSeries.standardOptions.color.withFixedColor('light-purple'),
+ g.panel.timeSeries.standardOptions.color.withMode(tokens.base.colors.mode.monochrome)
+ g.panel.timeSeries.standardOptions.color.withFixedColor(tokens.base.colors.palette.rate),
}
Loading