diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index a91eefb0679e..b046523837e9 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -2,6 +2,7 @@ #### Project +* Remove the always-on alarm-to-event conversion (`EventHookCallback`). A triggered alarm is no longer synthesized into the events pipeline as an `Alarm`/`AlarmRecovery` event; events now originate only from real event sources (agents, SkyWalking CLI, Kubernetes Event Exporter). Alarms remain available through the alarm store (`getAlarm`/`queryAlarms`) and the configured alarm hooks. This drops a documented "Known Event" and removes 1-2 synthetic event records per alarm fire. * **New `queryAlarms` GraphQL query — entity / layer / rule filters for alarms.** Adds a comprehensive alarm query API alongside the legacy `getAlarm`. The new `queryAlarms(condition: AlarmQueryCondition!): Alarms` accepts a single input type diff --git a/docs/en/concepts-and-designs/event.md b/docs/en/concepts-and-designs/event.md index 26b2c20586f7..837c44f395f6 100644 --- a/docs/en/concepts-and-designs/event.md +++ b/docs/en/concepts-and-designs/event.md @@ -66,7 +66,6 @@ service / instance / endpoint. | :----: | :----: | :-----| :---- | | Start | Normal | When your Java Application starts with SkyWalking Agent installed, the `Start` Event will be created. | Reported from SkyWalking agent. | | Shutdown | Normal | When your Java Application stops with SkyWalking Agent installed, the `Shutdown` Event will be created. | Reported from SkyWalking agent. | -| Alarm | Error | When the Alarm is triggered, the corresponding `Alarm` Event will is created. | Reported from internal SkyWalking OAP. | The following events are all reported by [Kubernetes Event Exporter](http://github.com/apache/skywalking-kubernetes-event-exporter), in order to see these diff --git a/oap-server/server-alarm-plugin/pom.xml b/oap-server/server-alarm-plugin/pom.xml index 9f4494dd6de9..a13181fca365 100644 --- a/oap-server/server-alarm-plugin/pom.xml +++ b/oap-server/server-alarm-plugin/pom.xml @@ -38,11 +38,6 @@ library-util ${project.version} - - org.apache.skywalking - event-analyzer - ${project.version} - org.apache.skywalking mqe-rt diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallback.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallback.java deleted file mode 100644 index 5018a3fb2315..000000000000 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallback.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.skywalking.oap.server.core.alarm.provider; - -import java.io.IOException; - -import org.apache.skywalking.apm.network.event.v3.Event; -import org.apache.skywalking.apm.network.event.v3.Source; -import org.apache.skywalking.apm.network.event.v3.Type; -import org.apache.skywalking.oap.server.analyzer.event.EventAnalyzerModule; -import org.apache.skywalking.oap.server.analyzer.event.EventAnalyzerService; -import org.apache.skywalking.oap.server.core.CoreModule; -import org.apache.skywalking.oap.server.core.alarm.AlarmCallback; -import org.apache.skywalking.oap.server.core.alarm.AlarmMessage; -import org.apache.skywalking.oap.server.core.alarm.AlarmRecoveryMessage; -import org.apache.skywalking.oap.server.core.analysis.IDManager; -import org.apache.skywalking.oap.server.core.analysis.Layer; -import org.apache.skywalking.oap.server.core.query.MetadataQueryService; -import org.apache.skywalking.oap.server.core.query.type.Service; -import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine; -import org.apache.skywalking.oap.server.library.module.ModuleManager; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -/** - * EventCallBack: When an alert is present, an event is generated for each alert message. These events are then sent to the internal event analyzer. - */ -public class EventHookCallback implements AlarmCallback { - - private final ModuleManager manager; - private MetadataQueryService metadataQueryService; - - private MetadataQueryService getMetadataQueryService() { - if (metadataQueryService == null) { - this.metadataQueryService = manager.find(CoreModule.NAME) - .provider() - .getService(MetadataQueryService.class); - } - return metadataQueryService; - } - - public EventHookCallback(ModuleManager manager) { - this.manager = manager; - } - - public void doAlarm(List alarmMessage) throws Exception { - doAlarmCallback(alarmMessage, false); - } - - public void doAlarmRecovery(List alarmRecoveryMessages) throws Exception { - doAlarmCallback(alarmRecoveryMessages, true); - } - - private void doAlarmCallback(List alarmMessage, boolean isRecovery) throws Exception { - EventAnalyzerService analyzerService = manager.find(EventAnalyzerModule.NAME).provider().getService(EventAnalyzerService.class); - for (AlarmMessage a : alarmMessage) { - for (Event event : constructCurrentEvent(a, isRecovery)) { - analyzerService.analyze(event); - } - } - } - - private String getLayer(String serviceId) throws IOException { - Service service = getMetadataQueryService().getService(serviceId); - if (service != null) { - return service.getLayers().iterator().next(); - } else { - return Layer.UNDEFINED.name(); - } - } - - private List constructCurrentEvent(AlarmMessage msg, boolean isRecovery) throws IOException { - List events = new ArrayList<>(2); - long now = System.currentTimeMillis(); - Event.Builder builder = Event.newBuilder() - .setUuid(UUID.randomUUID().toString()) - .setName(isRecovery ? "AlarmRecovery" : "Alarm") - .setStartTime(isRecovery ? ((AlarmRecoveryMessage) msg).getRecoveryTime() : now - (msg.getPeriod() * 60 * 1000)) - .setMessage(msg.getAlarmMessage()) - .setType(isRecovery ? Type.Normal : Type.Error) - .setEndTime(isRecovery ? ((AlarmRecoveryMessage) msg).getRecoveryTime() : now); - switch (msg.getScopeId()) { - case DefaultScopeDefine.SERVICE: - IDManager.ServiceID.ServiceIDDefinition serviceIdDef = IDManager.ServiceID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setService(serviceIdDef.getName()) - .build() - ); - builder.setLayer(getLayer(msg.getId0())); - events.add(builder.build()); - break; - case DefaultScopeDefine.SERVICE_RELATION: - IDManager.ServiceID.ServiceIDDefinition sourceServiceIdDef = IDManager.ServiceID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setService(sourceServiceIdDef.getName()) - .build() - ); - builder.setLayer(getLayer(msg.getId0())); - events.add(builder.build()); - IDManager.ServiceID.ServiceIDDefinition destServiceIdDef = IDManager.ServiceID.analysisId(msg.getId1()); - builder.setSource( - Source.newBuilder() - .setService(destServiceIdDef.getName()) - .build() - ).setUuid(UUID.randomUUID().toString()); - builder.setLayer(getLayer(msg.getId1())); - events.add(builder.build()); - break; - case DefaultScopeDefine.SERVICE_INSTANCE: - IDManager.ServiceInstanceID.InstanceIDDefinition instanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setServiceInstance(instanceIdDef.getName()) - .setService(IDManager.ServiceID.analysisId(instanceIdDef.getServiceId()).getName()) - .build() - ); - builder.setLayer(getLayer(instanceIdDef.getServiceId())); - events.add(builder.build()); - break; - case DefaultScopeDefine.SERVICE_INSTANCE_RELATION: - IDManager.ServiceInstanceID.InstanceIDDefinition sourceInstanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setServiceInstance(sourceInstanceIdDef.getName()) - .setService(IDManager.ServiceID.analysisId(sourceInstanceIdDef.getServiceId()).getName()) - .build() - ); - builder.setLayer(getLayer(sourceInstanceIdDef.getServiceId())); - events.add(builder.build()); - IDManager.ServiceInstanceID.InstanceIDDefinition destInstanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId1()); - builder.setSource( - Source.newBuilder() - .setServiceInstance(destInstanceIdDef.getName()) - .setService(IDManager.ServiceID.analysisId(destInstanceIdDef.getServiceId()).getName()) - .build() - ).setUuid(UUID.randomUUID().toString()); - builder.setLayer(getLayer(destInstanceIdDef.getServiceId())); - events.add(builder.build()); - break; - case DefaultScopeDefine.ENDPOINT: - IDManager.EndpointID.EndpointIDDefinition endpointIDDef = IDManager.EndpointID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setEndpoint(endpointIDDef.getEndpointName()) - .setService(IDManager.ServiceID.analysisId(endpointIDDef.getServiceId()).getName()) - .build() - ); - builder.setLayer(getLayer(endpointIDDef.getServiceId())); - events.add(builder.build()); - break; - case DefaultScopeDefine.ENDPOINT_RELATION: - IDManager.EndpointID.EndpointIDDefinition sourceEndpointIDDef = IDManager.EndpointID.analysisId(msg.getId0()); - builder.setSource( - Source.newBuilder() - .setEndpoint(sourceEndpointIDDef.getEndpointName()) - .setService(IDManager.ServiceID.analysisId(sourceEndpointIDDef.getServiceId()).getName()) - .build() - ); - builder.setLayer(getLayer(sourceEndpointIDDef.getServiceId())); - events.add(builder.build()); - IDManager.EndpointID.EndpointIDDefinition destEndpointIDDef = IDManager.EndpointID.analysisId(msg.getId1()); - builder.setSource( - Source.newBuilder() - .setEndpoint(destEndpointIDDef.getEndpointName()) - .setService(IDManager.ServiceID.analysisId(destEndpointIDDef.getServiceId()).getName()) - .build() - ).setUuid(UUID.randomUUID().toString()); - builder.setLayer(getLayer(destEndpointIDDef.getServiceId())); - events.add(builder.build()); - break; - } - return events; - } -} diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java index 8e55f7ffb2c8..0d3473734a46 100644 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java +++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java @@ -241,7 +241,6 @@ public void init(AlarmCallback... callbacks) { allCallbacks.add(new WechatHookCallback(alarmRulesWatcher)); allCallbacks.add(new DingtalkHookCallback(alarmRulesWatcher)); allCallbacks.add(new FeishuHookCallback(alarmRulesWatcher)); - allCallbacks.add(new EventHookCallback(this.manager)); allCallbacks.add(new WeLinkHookCallback(alarmRulesWatcher)); allCallbacks.add(new PagerDutyHookCallback(alarmRulesWatcher)); allCallbacks.add(new DiscordHookCallback(alarmRulesWatcher)); diff --git a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallbackTest.java b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallbackTest.java deleted file mode 100644 index de333eccb788..000000000000 --- a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallbackTest.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.skywalking.oap.server.core.alarm.provider; - -import org.apache.skywalking.apm.network.event.v3.Event; -import org.apache.skywalking.oap.server.analyzer.event.EventAnalyzerService; -import org.apache.skywalking.oap.server.analyzer.event.EventAnalyzerServiceImpl; -import org.apache.skywalking.oap.server.core.CoreModule; -import org.apache.skywalking.oap.server.core.alarm.AlarmMessage; -import org.apache.skywalking.oap.server.core.analysis.IDManager; -import org.apache.skywalking.oap.server.core.analysis.Layer; -import org.apache.skywalking.oap.server.core.query.MetadataQueryService; -import org.apache.skywalking.oap.server.core.query.type.Service; -import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine; -import org.apache.skywalking.oap.server.library.module.ModuleManager; -import org.apache.skywalking.oap.server.library.module.ModuleProviderHolder; -import org.apache.skywalking.oap.server.library.module.ModuleServiceHolder; -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; - -import java.util.Arrays; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class EventHookCallbackTest { - - private ModuleManager moduleManager = mock(ModuleManager.class); - - private ModuleProviderHolder moduleProviderHolder = mock(ModuleProviderHolder.class); - - private ModuleServiceHolder moduleServiceHolder = mock(ModuleServiceHolder.class); - - private MockEventAnalyzerService mockEventAnalyzerService = mock(MockEventAnalyzerService.class); - - private EventAnalyzerService eventAnalyzerService = mock(EventAnalyzerServiceImpl.class); - - private MetadataQueryService metadataQueryService = mock(MetadataQueryService.class); - - @Test - public void testEventCallbackHasRightFlow() throws Exception { - List msgs = mockAlarmMessagesHasSingleElement(); - EventHookCallback callback = new EventHookCallback(this.moduleManager); - when(moduleManager.find("event-analyzer")).thenReturn(moduleProviderHolder); - when(moduleProviderHolder.provider()).thenReturn(moduleServiceHolder); - when(moduleServiceHolder.getService(EventAnalyzerService.class)).thenReturn(mockEventAnalyzerService); - when(moduleManager.find(CoreModule.NAME)).thenReturn(moduleProviderHolder); - when(moduleServiceHolder.getService(MetadataQueryService.class)).thenReturn(metadataQueryService); - Service service = mockService(); - when(metadataQueryService.getService(service.getId())).thenReturn(service); - //make sure current service be called. - callback.doAlarm(msgs); - verify(mockEventAnalyzerService).analyze(any(Event.class)); - - when(moduleServiceHolder.getService(EventAnalyzerService.class)).thenReturn(eventAnalyzerService); - callback.doAlarm(msgs); - //Ensure that the current Event is properly constructed - ArgumentCaptor argument = ArgumentCaptor.forClass(Event.class); - verify(eventAnalyzerService).analyze(argument.capture()); - Event value = argument.getValue(); - AlarmMessage msg = msgs.get(0); - assertEquals(msg.getName(), value.getSource().getService()); - assertEquals("Alarm", value.getName()); - assertEquals(msg.getAlarmMessage(), value.getMessage()); - assertEquals(msg.getPeriod(), (value.getEndTime() - value.getStartTime()) / 1000 / 60); - assertEquals(service.getLayers().iterator().next(), value.getLayer()); - - } - - @Test - public void testRelationEventBeProperlyConstructed() throws Exception { - List msgs = mockAlarmMessagesHasSourceAndDest(); - EventHookCallback callback = new EventHookCallback(this.moduleManager); - when(moduleManager.find("event-analyzer")).thenReturn(moduleProviderHolder); - when(moduleProviderHolder.provider()).thenReturn(moduleServiceHolder); - when(moduleServiceHolder.getService(EventAnalyzerService.class)).thenReturn(eventAnalyzerService); - when(moduleManager.find(CoreModule.NAME)).thenReturn(moduleProviderHolder); - when(moduleServiceHolder.getService(MetadataQueryService.class)).thenReturn(metadataQueryService); - Service service = mockService(); - when(metadataQueryService.getService(service.getId())).thenReturn(service); - callback.doAlarm(msgs); - - ArgumentCaptor argument = ArgumentCaptor.forClass(Event.class); - verify(eventAnalyzerService, times(2)).analyze(argument.capture()); - List events = argument.getAllValues(); - assertEquals(events.size(), 2); - Event sourceEvent = events.get(0); - Event destEvent = events.get(1); - AlarmMessage msg = msgs.get(0); - assertEquals(sourceEvent.getSource().getService(), IDManager.ServiceID.analysisId(msg.getId0()).getName()); - assertEquals((sourceEvent.getEndTime() - sourceEvent.getStartTime()) / 1000 / 60, msg.getPeriod()); - assertEquals(destEvent.getSource().getService(), IDManager.ServiceID.analysisId(msg.getId1()).getName()); - assertEquals((destEvent.getEndTime() - destEvent.getStartTime()) / 1000 / 60, msg.getPeriod()); - assertEquals(service.getLayers().iterator().next(), sourceEvent.getLayer()); - assertEquals(Layer.UNDEFINED.name(), destEvent.getLayer()); - } - - private List mockAlarmMessagesHasSingleElement() { - AlarmMessage msg = new AlarmMessage(); - msg.setScopeId(DefaultScopeDefine.SERVICE); - msg.setScope("SERVICE"); - msg.setName("test-skywalking"); - msg.setId0("dGVzdC1za3l3YWxraW5n.1"); - msg.setAlarmMessage("Alarm caused by Rule service_resp_time_rule"); - msg.setPeriod(3); - return Arrays.asList(msg); - } - - private List mockAlarmMessagesHasSourceAndDest() { - AlarmMessage msg = new AlarmMessage(); - msg.setScopeId(DefaultScopeDefine.SERVICE_RELATION); - msg.setScope(""); - msg.setName("test-skywalking"); - msg.setId0(IDManager.ServiceID.buildId("test-skywalking", true)); - msg.setId1(IDManager.ServiceID.buildId("destIdStr", true)); - msg.setAlarmMessage("Alarm caused by Rule service_resp_time_rule"); - msg.setPeriod(5); - return Arrays.asList(msg); - } - - private Service mockService() { - Service service = new Service(); - service.setName("test-skywalking"); - service.setId(IDManager.ServiceID.buildId(service.getName(), true)); - service.getLayers().add(Layer.GENERAL.name()); - return service; - } - - class MockEventAnalyzerService implements EventAnalyzerService { - - @Override - public void analyze(Event event) { - //ignore current mock process. - } - } -} diff --git a/test/e2e-v2/CLAUDE.md b/test/e2e-v2/CLAUDE.md index 894e52783215..37e43194a2ec 100644 --- a/test/e2e-v2/CLAUDE.md +++ b/test/e2e-v2/CLAUDE.md @@ -354,19 +354,6 @@ msgs: tags: - key: level value: WARNING - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid }} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - message: {{ notEmpty .message }} - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} {{- end }} ``` diff --git a/test/e2e-v2/cases/alarm/expected/silence-after-graphql-critical.yml b/test/e2e-v2/cases/alarm/expected/silence-after-graphql-critical.yml index a4b608c285c6..f4f40153876c 100644 --- a/test/e2e-v2/cases/alarm/expected/silence-after-graphql-critical.yml +++ b/test/e2e-v2/cases/alarm/expected/silence-after-graphql-critical.yml @@ -25,21 +25,7 @@ msgs: value: CRITICAL - key: receivers value: zhangsan - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid}} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message}} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum((service_resp_time > 100) && (service_sla > 1)) >= 1 metrics: diff --git a/test/e2e-v2/cases/alarm/expected/silence-after-graphql-warn.yml b/test/e2e-v2/cases/alarm/expected/silence-after-graphql-warn.yml index 50b81cb282d4..d4f79281afd3 100644 --- a/test/e2e-v2/cases/alarm/expected/silence-after-graphql-warn.yml +++ b/test/e2e-v2/cases/alarm/expected/silence-after-graphql-warn.yml @@ -25,21 +25,7 @@ msgs: value: WARNING - key: receivers value: lisi - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid }} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message }} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum(service_percentile{p='50,75,90,95,99'} > 100) >= 3 metrics: @@ -70,21 +56,7 @@ msgs: value: WARNING - key: receivers value: lisi - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid}} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message}} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum(abs(increase(service_resp_time,1)) > 0) >= 1 metrics: diff --git a/test/e2e-v2/cases/alarm/expected/silence-before-graphql-critical.yml b/test/e2e-v2/cases/alarm/expected/silence-before-graphql-critical.yml index a4b608c285c6..f4f40153876c 100644 --- a/test/e2e-v2/cases/alarm/expected/silence-before-graphql-critical.yml +++ b/test/e2e-v2/cases/alarm/expected/silence-before-graphql-critical.yml @@ -25,21 +25,7 @@ msgs: value: CRITICAL - key: receivers value: zhangsan - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid}} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message}} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum((service_resp_time > 100) && (service_sla > 1)) >= 1 metrics: diff --git a/test/e2e-v2/cases/alarm/expected/silence-before-graphql-warn.yml b/test/e2e-v2/cases/alarm/expected/silence-before-graphql-warn.yml index 6d19c8185deb..dd6e258b8532 100644 --- a/test/e2e-v2/cases/alarm/expected/silence-before-graphql-warn.yml +++ b/test/e2e-v2/cases/alarm/expected/silence-before-graphql-warn.yml @@ -25,21 +25,7 @@ msgs: value: WARNING - key: receivers value: lisi - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid }} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message }} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum(service_percentile{p='50,75,90,95,99'} > 100) >= 3 metrics: @@ -70,21 +56,7 @@ msgs: value: WARNING - key: receivers value: lisi - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid}} - source: - service: e2e-service-provider - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message}} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: GENERAL - {{- end }} + events: [] snapshot: expression: sum(abs(increase(service_resp_time,1)) > 0) >= 1 metrics: diff --git a/test/e2e-v2/cases/baseline/expected/critical.yml b/test/e2e-v2/cases/baseline/expected/critical.yml index 6d3431adc44b..8a0ccd4d2ee2 100644 --- a/test/e2e-v2/cases/baseline/expected/critical.yml +++ b/test/e2e-v2/cases/baseline/expected/critical.yml @@ -25,21 +25,7 @@ msgs: value: CRITICAL - key: receivers value: zhangsan - events: - {{- contains .events }} - - uuid: {{ notEmpty .uuid }} - source: - service: e2e-test-dest-service - serviceinstance: "" - endpoint: "" - name: Alarm - type: "" - message: {{ notEmpty .message }} - parameters: [] - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - layer: {{ notEmpty .layer }} - {{- end }} + events: [] snapshot: expression: sum(service_resp_time > baseline(service_resp_time,lower)) >= 1 metrics: