summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2019-02-05 08:34:20 +0000
committerPhil Hughes <me@iamphill.com>2019-02-05 08:34:20 +0000
commit74abc7750357c5e5bef4962abd2bf3f5da39b752 (patch)
treed2c2ce4e9265da8cec849fa4abc8a8f087018c75
parent4dc45702a49423b34dc5c65c8e24152b675eeab0 (diff)
parentaa5d516246546e8d6cd5aa04e5131b3d10cce3a1 (diff)
downloadgitlab-ce-74abc7750357c5e5bef4962abd2bf3f5da39b752.tar.gz
Merge branch 'adriel-add-deployment-data' into 'master'
Add deployment data to metrics graphs See merge request gitlab-org/gitlab-ce!24650
-rw-r--r--app/assets/javascripts/monitoring/components/charts/area.vue42
-rw-r--r--app/assets/javascripts/monitoring/components/dashboard.vue1
2 files changed, 43 insertions, 0 deletions
diff --git a/app/assets/javascripts/monitoring/components/charts/area.vue b/app/assets/javascripts/monitoring/components/charts/area.vue
index ae8d971d061..47018803043 100644
--- a/app/assets/javascripts/monitoring/components/charts/area.vue
+++ b/app/assets/javascripts/monitoring/components/charts/area.vue
@@ -33,6 +33,11 @@ export default {
type: Number,
required: true,
},
+ deploymentData: {
+ type: Array,
+ required: false,
+ default: () => [],
+ },
alertData: {
type: Object,
required: false,
@@ -79,6 +84,43 @@ export default {
legend: {
formatter: this.xAxisLabel,
},
+ series: this.scatterSeries,
+ };
+ },
+ earliestDatapoint() {
+ return Object.values(this.chartData).reduce((acc, data) => {
+ const [[timestamp]] = data.sort(([a], [b]) => {
+ if (a < b) {
+ return -1;
+ }
+ return a > b ? 1 : 0;
+ });
+
+ return timestamp < acc || acc === null ? timestamp : acc;
+ }, null);
+ },
+ recentDeployments() {
+ return this.deploymentData.reduce((acc, deployment) => {
+ if (deployment.created_at >= this.earliestDatapoint) {
+ acc.push({
+ id: deployment.id,
+ createdAt: deployment.created_at,
+ sha: deployment.sha,
+ commitUrl: `${this.projectPath}/commit/${deployment.sha}`,
+ tag: deployment.tag,
+ tagUrl: deployment.tag ? `${this.tagsPath}/${deployment.ref.name}` : null,
+ ref: deployment.ref.name,
+ showDeploymentFlag: false,
+ });
+ }
+
+ return acc;
+ }, []);
+ },
+ scatterSeries() {
+ return {
+ type: 'scatter',
+ data: this.recentDeployments.map(deployment => [deployment.createdAt, 0]),
};
},
xAxisLabel() {
diff --git a/app/assets/javascripts/monitoring/components/dashboard.vue b/app/assets/javascripts/monitoring/components/dashboard.vue
index 76059cb602d..9c5fd93f7d1 100644
--- a/app/assets/javascripts/monitoring/components/dashboard.vue
+++ b/app/assets/javascripts/monitoring/components/dashboard.vue
@@ -190,6 +190,7 @@ export default {
v-for="(graphData, graphIndex) in groupData.metrics"
:key="graphIndex"
:graph-data="graphData"
+ :deployment-data="store.deploymentData"
:alert-data="getGraphAlerts(graphData.id)"
:container-width="elWidth"
group-id="monitor-area-chart"