diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index a2dd79ed1ab..2a7da2a436f 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -34,7 +34,7 @@ All reviewers can help ensure accuracy, clarity, completeness, and adherence to **3. Maintainer** 1. [ ] Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. -1. [ ] Ensure a release milestone is set and that you merge the equivalent EE MR before the CE MR if both exist. +1. [ ] Ensure a release milestone is set. 1. [ ] If there has not been a technical writer review, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab/issues/new?issuable_template=Doc%20Review). /label ~documentation diff --git a/app/assets/javascripts/grafana_integration/components/grafana_integration.vue b/app/assets/javascripts/grafana_integration/components/grafana_integration.vue index 35135792c5b..bd504d95ee2 100644 --- a/app/assets/javascripts/grafana_integration/components/grafana_integration.vue +++ b/app/assets/javascripts/grafana_integration/components/grafana_integration.vue @@ -13,7 +13,7 @@ export default { Icon, }, data() { - return { placeholderUrl: 'https://my-url.grafana.net/my-dashboard' }; + return { placeholderUrl: 'https://my-url.grafana.net/' }; }, computed: { ...mapState(['operationsSettingsEndpoint', 'grafanaToken', 'grafanaUrl', 'grafanaEnabled']), diff --git a/app/views/clusters/clusters/user/_form.html.haml b/app/views/clusters/clusters/user/_form.html.haml index c16f5f333f5..39b6d74d9f9 100644 --- a/app/views/clusters/clusters/user/_form.html.haml +++ b/app/views/clusters/clusters/user/_form.html.haml @@ -1,6 +1,6 @@ -- more_info_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_cluster.md', +- more_info_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_clusters.md', anchor: 'add-existing-cluster'), target: '_blank' -- rbac_help_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_cluster.md', +- rbac_help_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_clusters.md', anchor: 'access-controls'), target: '_blank' - api_url_help_text = s_('ClusterIntegration|The URL used to access the Kubernetes API.') diff --git a/bin/secpick b/bin/secpick index a44867846d0..963172987f4 100755 --- a/bin/secpick +++ b/bin/secpick @@ -103,7 +103,7 @@ module Secpick options[:branch] = branch end - opts.on('-s', '--sha abcd', 'SHA to cherry pick') do |sha| + opts.on('-s', '--sha abcd', 'SHA or SHA range to cherry pick') do |sha| options[:sha] = sha end diff --git a/doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png b/doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png new file mode 100644 index 00000000000..5cba6fa9038 Binary files /dev/null and b/doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png differ diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index 9c5b53f8d47..d9d39897178 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -211,11 +211,11 @@ The following tables outline the details of expected properties. | Property | Type | Required | Description | | ------ | ------ | ------ | ------- | -| `type` | enum | no, defaults to `area-chart` | Specifies the chart type to use, can be `area-chart` or `line-chart` | +| `type` | enum | no, defaults to `area-chart` | Specifies the chart type to use, can be: `area-chart`, `line-chart` or `anomaly-chart`. | | `title` | string | yes | Heading for the panel. | | `y_label` | string | no, but highly encouraged | Y-Axis label for the panel. | | `weight` | number | no, defaults to order in file | Order to appear within the grouping. Lower number means higher priority, which will be higher on the page. Numbers do not need to be consecutive. | -| `metrics` | array | yes | The metrics which should be displayed in the panel. | +| `metrics` | array | yes | The metrics which should be displayed in the panel. Any number of metrics can be displayed when `type` is `area-chart` or `line-chart`, whereas only 3 can be displayed when `type` is `anomaly-chart`. | **Metrics (`metrics`) properties:** @@ -231,20 +231,20 @@ The following tables outline the details of expected properties. The below panel types are supported in monitoring dashboards. -##### Area +##### Area or Line Chart -To add an area panel type to a dashboard, look at the following sample dashboard file: +To add an area chart panel type to a dashboard, look at the following sample dashboard file: ```yaml dashboard: 'Dashboard Title' panel_groups: - group: 'Group Title' panels: - - type: area-chart - title: "Chart Title" + - type: area-chart # or line-chart + title: 'Area Chart Title' y_label: "Y-Axis" metrics: - - id: 10 + - id: area_http_requests_total query_range: 'http_requests_total' label: "Metric of Ages" unit: "count" @@ -255,10 +255,52 @@ Note the following properties: | Property | Type | Required | Description | | ------ | ------ | ------ | ------ | | type | string | no | Type of panel to be rendered. Optional for area panel types | -| query_range | yes | required | For area panel types, you must use a [range query](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) | +| query_range | string | required | For area panel types, you must use a [range query](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) | ![area panel type](img/prometheus_dashboard_area_panel_type.png) +##### Anomaly chart + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/16530) in GitLab 12.5. + +To add an anomaly chart panel type to a dashboard, add add a panel with *exactly* 3 metrics. + +The first metric represents the current state, and the second and third metrics represent the upper and lower limit respectively: + +```yaml +dashboard: 'Dashboard Title' +panel_groups: + - group: 'Group Title' + panels: + - type: anomaly-chart + title: "Chart Title" + y_label: "Y-Axis" + metrics: + - id: anomaly_requests_normal + query_range: 'http_requests_total' + label: "# of Requests" + unit: "count" + metrics: + - id: anomaly_requests_upper_limit + query_range: 10000 + label: "Max # of requests" + unit: "count" + metrics: + - id: anomaly_requests_lower_limit + query_range: 2000 + label: "Min # of requests" + unit: "count" +``` + +Note the following properties: + +| Property | Type | Required | Description | +| ------ | ------ | ------ | ------ | +| type | string | required | Must be `anomaly-chart` for anomaly panel types | +| query_range | yes | required | For anomaly panel types, you must use a [range query](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) in every metric. | + +![anomaly panel type](img/prometheus_dashboard_anomaly_panel_type.png) + ##### Single Stat To add a single stat panel type to a dashboard, look at the following sample dashboard file: diff --git a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap index 99f669dba5a..69ad71a1efb 100644 --- a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap +++ b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap @@ -51,7 +51,7 @@ exports[`grafana integration component default state to match the default snapsh >