Commit fee6ca1d authored by Vitali Tatarintev's avatar Vitali Tatarintev Committed by Paul Slaughter

Move Alerting feature to Core

Moves Settings > Integrations > Prometheus > Alerts to Core

https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28196
parent 70b1b6cc
import IntegrationSettingsForm from '~/integrations/integration_settings_form'; import IntegrationSettingsForm from '~/integrations/integration_settings_form';
import PrometheusMetrics from '~/prometheus_metrics/prometheus_metrics'; import PrometheusMetrics from '~/prometheus_metrics/prometheus_metrics';
import PrometheusAlerts from '~/prometheus_alerts';
import initAlertsSettings from '~/alerts_service_settings'; import initAlertsSettings from '~/alerts_service_settings';
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
...@@ -12,5 +13,6 @@ document.addEventListener('DOMContentLoaded', () => { ...@@ -12,5 +13,6 @@ document.addEventListener('DOMContentLoaded', () => {
prometheusMetrics.loadActiveMetrics(); prometheusMetrics.loadActiveMetrics();
} }
PrometheusAlerts();
initAlertsSettings(document.querySelector('.js-alerts-service-settings')); initAlertsSettings(document.querySelector('.js-alerts-service-settings'));
}); });
...@@ -6,4 +6,4 @@ ...@@ -6,4 +6,4 @@
.row.append-bottom-default.prometheus-metrics-monitoring.js-prometheus-metrics-monitoring .row.append-bottom-default.prometheus-metrics-monitoring.js-prometheus-metrics-monitoring
= render 'projects/services/prometheus/metrics', project: @project = render 'projects/services/prometheus/metrics', project: @project
= render_if_exists 'projects/services/prometheus/external_alerts', project: @project = render 'projects/services/prometheus/external_alerts', project: @project
---
title: Move Alerting feature to Core
merge_request: 28196
author:
type: changed
...@@ -662,7 +662,8 @@ To remove the alert, click back on the alert icon for the desired metric, and cl ...@@ -662,7 +662,8 @@ To remove the alert, click back on the alert icon for the desired metric, and cl
#### External Prometheus instances #### External Prometheus instances
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9258) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.8. >- [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9258) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.8.
>- [Moved](https://gitlab.com/gitlab-org/gitlab/issues/42640) to [GitLab Core](https://about.gitlab.com/pricing/) in 12.10.
For manually configured Prometheus servers, a notify endpoint is provided to use with Prometheus webhooks. If you have manual configuration enabled, an **Alerts** section is added to **Settings > Integrations > Prometheus**. This contains the *URL* and *Authorization Key*. The **Reset Key** button will invalidate the key and generate a new one. For manually configured Prometheus servers, a notify endpoint is provided to use with Prometheus webhooks. If you have manual configuration enabled, an **Alerts** section is added to **Settings > Integrations > Prometheus**. This contains the *URL* and *Authorization Key*. The **Reset Key** button will invalidate the key and generate a new one.
......
import PrometheusMetrics from 'ee/prometheus_metrics/prometheus_metrics'; import PrometheusMetrics from 'ee/prometheus_metrics/prometheus_metrics';
import PrometheusAlerts from 'ee/prometheus_alerts'; import PrometheusAlerts from '~/prometheus_alerts';
import IntegrationSettingsForm from '~/integrations/integration_settings_form'; import IntegrationSettingsForm from '~/integrations/integration_settings_form';
import initAlertsSettings from '~/alerts_service_settings'; import initAlertsSettings from '~/alerts_service_settings';
......
...@@ -155,7 +155,6 @@ module EE ...@@ -155,7 +155,6 @@ module EE
projects_mirrored_with_pipelines_enabled: count(::Project.mirrored_with_enabled_pipelines), projects_mirrored_with_pipelines_enabled: count(::Project.mirrored_with_enabled_pipelines),
projects_reporting_ci_cd_back_to_github: count(::GithubService.without_defaults.active), projects_reporting_ci_cd_back_to_github: count(::GithubService.without_defaults.active),
projects_with_packages: distinct_count(::Packages::Package, :project_id), projects_with_packages: distinct_count(::Packages::Package, :project_id),
projects_with_prometheus_alerts: distinct_count(PrometheusAlert, :project_id),
projects_with_tracing_enabled: count(ProjectTracingSetting), projects_with_tracing_enabled: count(ProjectTracingSetting),
template_repositories: count(::Project.with_repos_templates) + count(::Project.with_groups_level_repos_templates) template_repositories: count(::Project.with_repos_templates) + count(::Project.with_groups_level_repos_templates)
}, },
......
...@@ -99,6 +99,7 @@ module Gitlab ...@@ -99,6 +99,7 @@ module Gitlab
projects_with_repositories_enabled: count(ProjectFeature.where('repository_access_level > ?', ProjectFeature::DISABLED)), projects_with_repositories_enabled: count(ProjectFeature.where('repository_access_level > ?', ProjectFeature::DISABLED)),
projects_with_error_tracking_enabled: count(::ErrorTracking::ProjectErrorTrackingSetting.where(enabled: true)), projects_with_error_tracking_enabled: count(::ErrorTracking::ProjectErrorTrackingSetting.where(enabled: true)),
projects_with_alerts_service_enabled: count(AlertsService.active), projects_with_alerts_service_enabled: count(AlertsService.active),
projects_with_prometheus_alerts: distinct_count(PrometheusAlert, :project_id),
protected_branches: count(ProtectedBranch), protected_branches: count(ProtectedBranch),
releases: count(Release), releases: count(Release),
remote_mirrors: count(RemoteMirror), remote_mirrors: count(RemoteMirror),
......
...@@ -26,6 +26,9 @@ FactoryBot.define do ...@@ -26,6 +26,9 @@ FactoryBot.define do
create_list(:issue, 2, project: projects[0], author: User.alert_bot) create_list(:issue, 2, project: projects[0], author: User.alert_bot)
create_list(:issue, 2, project: projects[1], author: User.alert_bot) create_list(:issue, 2, project: projects[1], author: User.alert_bot)
create_list(:issue, 4, project: projects[0]) create_list(:issue, 4, project: projects[0])
create(:prometheus_alert, project: projects[0])
create(:prometheus_alert, project: projects[0])
create(:prometheus_alert, project: projects[1])
create(:zoom_meeting, project: projects[0], issue: projects[0].issues[0], issue_status: :added) create(:zoom_meeting, project: projects[0], issue: projects[0].issues[0], issue_status: :added)
create_list(:zoom_meeting, 2, project: projects[0], issue: projects[0].issues[1], issue_status: :removed) create_list(:zoom_meeting, 2, project: projects[0], issue: projects[0].issues[1], issue_status: :removed)
create(:zoom_meeting, project: projects[0], issue: projects[0].issues[2], issue_status: :added) create(:zoom_meeting, project: projects[0], issue: projects[0].issues[2], issue_status: :added)
......
...@@ -10,8 +10,6 @@ describe 'Prometheus external alerts', :js do ...@@ -10,8 +10,6 @@ describe 'Prometheus external alerts', :js do
let(:alerts_section) { page.find(alerts_section_selector) } let(:alerts_section) { page.find(alerts_section_selector) }
before do before do
stub_licensed_features(prometheus_alerts: true)
sign_in(user) sign_in(user)
project.add_maintainer(user) project.add_maintainer(user)
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import MockAdapter from 'axios-mock-adapter'; import MockAdapter from 'axios-mock-adapter';
import ResetKey from 'ee/prometheus_alerts/components/reset_key.vue'; import ResetKey from '~/prometheus_alerts/components/reset_key.vue';
import { GlModal } from '@gitlab/ui'; import { GlModal } from '@gitlab/ui';
import waitForPromises from 'helpers/wait_for_promises'; import waitForPromises from 'helpers/wait_for_promises';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
......
...@@ -51,6 +51,7 @@ describe Gitlab::UsageData, :aggregate_failures do ...@@ -51,6 +51,7 @@ describe Gitlab::UsageData, :aggregate_failures do
expect(count_data[:projects_with_repositories_enabled]).to eq(3) expect(count_data[:projects_with_repositories_enabled]).to eq(3)
expect(count_data[:projects_with_error_tracking_enabled]).to eq(1) expect(count_data[:projects_with_error_tracking_enabled]).to eq(1)
expect(count_data[:projects_with_alerts_service_enabled]).to eq(1) expect(count_data[:projects_with_alerts_service_enabled]).to eq(1)
expect(count_data[:projects_with_prometheus_alerts]).to eq(2)
expect(count_data[:issues_created_from_gitlab_error_tracking_ui]).to eq(1) expect(count_data[:issues_created_from_gitlab_error_tracking_ui]).to eq(1)
expect(count_data[:issues_with_associated_zoom_link]).to eq(2) expect(count_data[:issues_with_associated_zoom_link]).to eq(2)
expect(count_data[:issues_using_zoom_quick_actions]).to eq(3) expect(count_data[:issues_using_zoom_quick_actions]).to eq(3)
......
...@@ -13,7 +13,6 @@ describe PrometheusAlertEntity do ...@@ -13,7 +13,6 @@ describe PrometheusAlertEntity do
context 'when user can read prometheus alerts' do context 'when user can read prometheus alerts' do
before do before do
prometheus_alert.project.add_maintainer(user) prometheus_alert.project.add_maintainer(user)
stub_licensed_features(prometheus_alerts: true)
end end
it 'exposes prometheus_alert attributes' do it 'exposes prometheus_alert attributes' do
......
...@@ -92,6 +92,7 @@ module UsageDataHelpers ...@@ -92,6 +92,7 @@ module UsageDataHelpers
projects_with_repositories_enabled projects_with_repositories_enabled
projects_with_error_tracking_enabled projects_with_error_tracking_enabled
projects_with_alerts_service_enabled projects_with_alerts_service_enabled
projects_with_prometheus_alerts
pages_domains pages_domains
protected_branches protected_branches
releases releases
......
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