For a customer we need a quick / basic approach for alerting.
Design decisions for a very basic alerting:
Source:
alerting shall be generic to any metric (even metrics that are not collected by inspectIT e.g. collectd)
all data, the alerting shall work on must be in influxDB
Definition:
alerts shall be sent if a threshold is exceeded by any single measurement
Time range (interval) of checking the metrics
Action:
for now only e-mail notification
for a series of subsequent intervals in which the threshold is exceeded an e-mail is only sent for the first and the last interval (start and end).
Step:
DTO Objects (XML files)
Services for UI - CMR configuration
extend InfluxDAO for querying
Alerting Component (responsible for the scheduled checks)
UI
config of e-mail server (CMR properties)
additional view for configuring alerts
is the tag "needs_rework" still necessary?
FAILURE: Integrated in
inspectIT - Integration #206
INSPECTIT-1953: Basic Alerting (ivan.senic: 4192baa45b610811371ab3f508fe5203950aa07d)
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/action/AlertingActionServiceTest.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/mail/impl/EMailSenderTest.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/communication/data/cmr/AlertClosingReason.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/property/control/impl/StringPropertyControl.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/AbstractAlertDefinitionWizard.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/ThresholdChecker.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/util/AlertingUtilsTest.java
(edit) inspectit.server/src/main/external-resources/config/default.xml
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/util/LineNumbersStyleListener.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/table/input/AlertInvocInputController.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/AlertTest.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/AlertingDefinition.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/formatter/TextFormatter.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/tester/CmrOnlineStatusTester.java
(add) inspectit.ui.rcp/src/main/resources/icons/fugue/flag.png
(add) inspectit.server/src/main/java/rocks/inspectit/server/template/AlertEMailTemplateType.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/provider/IAlertDefinitionProvider.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/influx/dao/InfluxQueryFactoryTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/core/impl/CoreService.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/AlertingStateLifecycleManagerTest.java
(add) inspectit.server/src/main/external-resources/templates/alert-bt-closed.txt
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/inputdefinition/extra/InputDefinitionExtrasMarkerFactory.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/model/SensorTypeEnum.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/dao/impl/InfluxDBDao.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/AlertRegistry.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/ci/event/AbstractAlertingDefinitionEvent.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/service/IAlertService.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/dao/IInfluxDBDao.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/service/ConfigurationInterfaceService.java
(add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/exception/enumeration/AlertErrorCodeEnum.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/page/AlertSourceDefinitionWizardPage.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/provider/IApplicationProvider.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/dialog/DetailsDialog.java
(add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/util/ExecutorServiceUtils.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/property/configuration/validator/impl/EMailListValidator.java
(add) inspectit.server/src/main/external-resources/templates/alert-bt-closed.html
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/CreateAlertDefinitionWizard.java
(edit) inspectit.ui.rcp/src/main/resources/plugin.xml
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/view/AlertLabelProvider.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/view/AlertManagerViewPart.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/AbstractCiData.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/template/TemplateManagerTest.java
(add) inspectit.server/src/main/external-resources/templates/alert-open.html
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/property/configuration/validator/impl/EMailValidator.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/service/AlertAccessService.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/repository/service/cmr/CmrServiceProvider.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/preferences/PreferenceControlFactory.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/influx/util/QueryResultWrapper.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/service/IConfigurationInterfaceService.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/action/impl/EmailAlertAction.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/preferences/FormPreferencePanel.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/service/InvocationDataAccessService.java
(add) inspectit.server/src/main/external-resources/templates/alert-bt-open.txt
(edit) inspectit.server/src/main/external-resources/config/schema/configurationSchema.xsd
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/handler/DeleteAlertDefinitionHandler.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/ci/ConfigurationInterfaceManager.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/formatter/ImageFormatter.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/dialog/AlertSelectionDialog.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/InspectITImages.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/property/configuration/SingleProperty.java
(add) inspectit.server/src/main/external-resources/templates/alert-closed.html
(add) inspectit.shared.cs/src/test/java/rocks/inspectit/shared/cs/ci/AlertingDefinitionTest.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/service/IInfluxDBService.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/handlers/OpenAlertHandler.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/AlertRegistryTest.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/influx/dao/InfluxQueryFactory.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/action/impl/EmailAlertActionTest.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/EditAlertDefinitionWizard.java
(edit) inspectit.server/src/test/java/rocks/inspectit/server/service/ConfigurationInterfaceServiceTest.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/state/AlertingState.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/repository/service/storage/StorageInvocationDataAccessService.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/ci/ConfigurationInterfacePathResolver.java
(edit) inspectit.server/src/test/java/rocks/inspectit/server/ci/ConfigurationInterfaceManagerTest.java
(edit) inspectit.server/src/main/resources/spring/spring-context-jetty.xml
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/ThresholdCheckerTest.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/listener/IAlertDefinitionChangeListener.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/root/FormRootEditor.java
(edit) dependencies.gradle
(edit) inspectit.ui.rcp/src/main/resources/META-INF/spring/spring-context-model-main.xml
(add) inspectit.server/src/main/java/rocks/inspectit/server/mail/impl/EMailSender.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/InspectITConfigurationInterfaceManager.java
(add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/util/FifoMap.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/mail/IEMailSender.java
(edit) inspectit.server/src/main/external-resources/ci/schema/ciSchema.xsd
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/action/AlertingActionService.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/SubViewFactory.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/storage/serializer/SerializationManagerPostProcessor.java
(add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/util/EMailUtils.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/cmr/service/IInvocationDataAccessService.java
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/repository/CmrRepositoryDefinition.java
(edit) inspectit.server/.gitignore
(add) inspectit.server/src/main/external-resources/templates/alert-bt-open.html
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/AlertDefinitionWizard.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/service/InfluxDBService.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/AlertingScheduler.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/model/ci/AlertDefinitionLeaf.java
(add) inspectit.server/src/main/external-resources/templates/alert-open.txt
(edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/perspective/ConfigurationInterfacePerspective.java
(add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/communication/data/cmr/Alert.java
(edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/BusinessTransactionPointBuilderTest.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/template/ITemplateType.java
(edit) license/THIRDPARTYLICENSE.txt
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/action/IAlertAction.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/template/TemplateManager.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/wizard/page/AlertDetailsWizardPage.java
(add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/inputdefinition/extra/AlertInputDefinitionExtra.java
(add) inspectit.server/src/main/external-resources/templates/alert-closed.txt
(edit) inspectit.server/src/main/java/rocks/inspectit/server/processor/impl/InfluxProcessor.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/util/AlertingUtils.java
(add) inspectit.server/src/main/java/rocks/inspectit/server/alerting/AlertingStateLifecycleManager.java
(add) inspectit.server/src/test/java/rocks/inspectit/server/alerting/AlertingSchedulerTest.java
(add) inspectit.ui.rcp/src/main/resources/icons/fugue/invocFlag.png
We need user documentation for this feature:
How to activate alerting
How to define alerting definitions
How to chnage email templates
How to open alert dialog and use ID from the mail
Does not have to be anything special and too long, but we should have good docs and some screen shots as well. Maybe you can take care of this tomorrow while Alex and I finish the HTTP status thingy.