Commit 749c2a5f authored by GitLab Bot's avatar GitLab Bot

Add latest changes from gitlab-org/gitlab@master

parent a1ed98e0
<script> <script>
import { GlResizeObserverDirective } from '@gitlab/ui';
import { GlColumnChart } from '@gitlab/ui/dist/charts'; import { GlColumnChart } from '@gitlab/ui/dist/charts';
import { debounceByAnimationFrame } from '~/lib/utils/common_utils';
import { getSvgIconPathContent } from '~/lib/utils/icon_utils'; import { getSvgIconPathContent } from '~/lib/utils/icon_utils';
import { chartHeight } from '../../constants'; import { chartHeight } from '../../constants';
import { makeDataSeries } from '~/helpers/monitor_helper'; import { makeDataSeries } from '~/helpers/monitor_helper';
...@@ -10,24 +10,21 @@ export default { ...@@ -10,24 +10,21 @@ export default {
components: { components: {
GlColumnChart, GlColumnChart,
}, },
inheritAttrs: false, directives: {
GlResizeObserverDirective,
},
props: { props: {
graphData: { graphData: {
type: Object, type: Object,
required: true, required: true,
validator: graphDataValidatorForValues.bind(null, false), validator: graphDataValidatorForValues.bind(null, false),
}, },
containerWidth: {
type: Number,
required: true,
},
}, },
data() { data() {
return { return {
width: 0, width: 0,
height: chartHeight, height: chartHeight,
svgs: {}, svgs: {},
debouncedResizeCallback: {},
}; };
}, },
computed: { computed: {
...@@ -68,15 +65,7 @@ export default { ...@@ -68,15 +65,7 @@ export default {
}; };
}, },
}, },
watch: {
containerWidth: 'onResize',
},
beforeDestroy() {
window.removeEventListener('resize', this.debouncedResizeCallback);
},
created() { created() {
this.debouncedResizeCallback = debounceByAnimationFrame(this.onResize);
window.addEventListener('resize', this.debouncedResizeCallback);
this.setSvg('scroll-handle'); this.setSvg('scroll-handle');
}, },
methods: { methods: {
...@@ -84,6 +73,7 @@ export default { ...@@ -84,6 +73,7 @@ export default {
return `${query.label}`; return `${query.label}`;
}, },
onResize() { onResize() {
if (!this.$refs.columnChart) return;
const { width } = this.$refs.columnChart.$el.getBoundingClientRect(); const { width } = this.$refs.columnChart.$el.getBoundingClientRect();
this.width = width; this.width = width;
}, },
...@@ -100,7 +90,7 @@ export default { ...@@ -100,7 +90,7 @@ export default {
}; };
</script> </script>
<template> <template>
<div class="prometheus-graph"> <div v-gl-resize-observer-directive="onResize" class="prometheus-graph">
<div class="prometheus-graph-header"> <div class="prometheus-graph-header">
<h5 ref="graphTitle" class="prometheus-graph-title">{{ graphData.title }}</h5> <h5 ref="graphTitle" class="prometheus-graph-title">{{ graphData.title }}</h5>
<div ref="graphWidgets" class="prometheus-graph-widgets"><slot></slot></div> <div ref="graphWidgets" class="prometheus-graph-widgets"><slot></slot></div>
......
<script> <script>
import { GlResizeObserverDirective } from '@gitlab/ui';
import { GlHeatmap } from '@gitlab/ui/dist/charts'; import { GlHeatmap } from '@gitlab/ui/dist/charts';
import dateformat from 'dateformat'; import dateformat from 'dateformat';
import PrometheusHeader from '../shared/prometheus_header.vue'; import PrometheusHeader from '../shared/prometheus_header.vue';
import ResizableChartContainer from '~/vue_shared/components/resizable_chart/resizable_chart_container.vue';
import { graphDataValidatorForValues } from '../../utils'; import { graphDataValidatorForValues } from '../../utils';
export default { export default {
components: { components: {
GlHeatmap, GlHeatmap,
ResizableChartContainer,
PrometheusHeader, PrometheusHeader,
}, },
directives: {
GlResizeObserverDirective,
},
props: { props: {
graphData: { graphData: {
type: Object, type: Object,
required: true, required: true,
validator: graphDataValidatorForValues.bind(null, false), validator: graphDataValidatorForValues.bind(null, false),
}, },
containerWidth: { },
type: Number, data() {
required: true, return {
}, width: 0,
};
}, },
computed: { computed: {
chartData() { chartData() {
...@@ -52,22 +55,27 @@ export default { ...@@ -52,22 +55,27 @@ export default {
return this.graphData.metrics[0]; return this.graphData.metrics[0];
}, },
}, },
methods: {
onResize() {
if (this.$refs.heatmapChart) return;
const { width } = this.$refs.heatmapChart.$el.getBoundingClientRect();
this.width = width;
},
},
}; };
</script> </script>
<template> <template>
<div class="prometheus-graph col-12 col-lg-6"> <div v-gl-resize-observer-directive="onResize" class="prometheus-graph col-12 col-lg-6">
<prometheus-header :graph-title="graphData.title" /> <prometheus-header :graph-title="graphData.title" />
<resizable-chart-container> <gl-heatmap
<gl-heatmap ref="heatmapChart"
ref="heatmapChart" v-bind="$attrs"
v-bind="$attrs" :data-series="chartData"
:data-series="chartData" :x-axis-name="xAxisName"
:x-axis-name="xAxisName" :y-axis-name="yAxisName"
:y-axis-name="yAxisName" :x-axis-labels="xAxisLabels"
:x-axis-labels="xAxisLabels" :y-axis-labels="yAxisLabels"
:y-axis-labels="yAxisLabels" :width="width"
:width="containerWidth" />
/>
</resizable-chart-container>
</div> </div>
</template> </template>
...@@ -14,6 +14,7 @@ import MonitorTimeSeriesChart from './charts/time_series.vue'; ...@@ -14,6 +14,7 @@ import MonitorTimeSeriesChart from './charts/time_series.vue';
import MonitorAnomalyChart from './charts/anomaly.vue'; import MonitorAnomalyChart from './charts/anomaly.vue';
import MonitorSingleStatChart from './charts/single_stat.vue'; import MonitorSingleStatChart from './charts/single_stat.vue';
import MonitorHeatmapChart from './charts/heatmap.vue'; import MonitorHeatmapChart from './charts/heatmap.vue';
import MonitorColumnChart from './charts/column.vue';
import MonitorEmptyChart from './charts/empty_chart.vue'; import MonitorEmptyChart from './charts/empty_chart.vue';
import TrackEventDirective from '~/vue_shared/directives/track_event'; import TrackEventDirective from '~/vue_shared/directives/track_event';
import { downloadCSVOptions, generateLinkToChartOptions } from '../utils'; import { downloadCSVOptions, generateLinkToChartOptions } from '../utils';
...@@ -21,6 +22,7 @@ import { downloadCSVOptions, generateLinkToChartOptions } from '../utils'; ...@@ -21,6 +22,7 @@ import { downloadCSVOptions, generateLinkToChartOptions } from '../utils';
export default { export default {
components: { components: {
MonitorSingleStatChart, MonitorSingleStatChart,
MonitorColumnChart,
MonitorHeatmapChart, MonitorHeatmapChart,
MonitorEmptyChart, MonitorEmptyChart,
Icon, Icon,
...@@ -114,7 +116,10 @@ export default { ...@@ -114,7 +116,10 @@ export default {
<monitor-heatmap-chart <monitor-heatmap-chart
v-else-if="isPanelType('heatmap') && graphDataHasMetrics" v-else-if="isPanelType('heatmap') && graphDataHasMetrics"
:graph-data="graphData" :graph-data="graphData"
:container-width="dashboardWidth" />
<monitor-column-chart
v-else-if="isPanelType('column') && graphDataHasMetrics"
:graph-data="graphData"
/> />
<component <component
:is="monitorChartComponent" :is="monitorChartComponent"
......
---
title: Add support for column charts
merge_request: 23903
author:
type: changed
...@@ -72,6 +72,16 @@ and they will assist you with any issues you are having. ...@@ -72,6 +72,16 @@ and they will assist you with any issues you are having.
This is the principle of Kubernetes, read [Twelve-factor app](https://12factor.net/) This is the principle of Kubernetes, read [Twelve-factor app](https://12factor.net/)
for details. for details.
- How to get cronjobs configured on a cluster
```bash
kubectl get cronjobs
```
When one configures [cron-based backups](https://docs.gitlab.com/charts/backup-restore/backup.html#cron-based-backup),
you will be able to see the new schedule here. Some details about the schedules can be found
in [Running Automated Tasks with a CronJob](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#creating-a-cron-job)
## GitLab-specific Kubernetes information ## GitLab-specific Kubernetes information
- Minimal config that can be used to test a Kubernetes Helm chart can be found - Minimal config that can be used to test a Kubernetes Helm chart can be found
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment