
The AlarmCreationBolt now caches AlarmDefinitions and Alarms for quicker evaluation of incoming metrics. Incoming metrics end up in one of these buckets: 1. Fits into an existing Alarm 2. Causes a new Alarm to be created 3. Already exists in an existing Alarm All of these require the analysis of existing Alarms. I tried writing SQL to do this analysis but it just wasn't fast enough so instead I added the caching of the Alarm Definitions and Alarms. The AlarmCreationBolt now needs to process Alarm deletion message so that stream from the EventProcessingBolt had to be hooked up to the AlarmCreationBolt. The AlarmCreationBolt used to incorrectly handle Alarm Definition Updated events. Improved the queries in AlarmDAOImpl to be more efficient by using fewer queries intsead of multiple queries per Alarm. However the AlarmDAOImplTest now requires a real mysql instance since the h2 emulator doesn't understand "group_concat". Mark that test as only run for target integration-test Turn on tests for target integration-test Previous code was not reusing Metrics from existing Alarms all times it should have. Added test for this case Changed info messages to debug to lessen normal logging. Added more tests of existing and new functionality Added some timing code for debug Removed unused code Added more debug logging code Added reference to API doc for Alarm Definitions in README Change-Id: Ied9841ecde7608b9eb1eb9c110b73b079ede71bc
344 lines
13 KiB
XML
344 lines
13 KiB
XML
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>monasca</groupId>
|
|
<artifactId>monasca-thresh</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
<url>http://github.com/stackforge/monasca-thresh</url>
|
|
<packaging>jar</packaging>
|
|
|
|
<!--
|
|
<prerequisites>
|
|
<maven>3.0</maven>
|
|
</prerequisites>
|
|
-->
|
|
|
|
<properties>
|
|
<mon.common.version>1.0.0-SNAPSHOT</mon.common.version>
|
|
<storm.version>0.9.1-incubating</storm.version>
|
|
<skipITs>false</skipITs>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<artifactNamedVersion>${project.artifactId}-${project.version}-${timestamp}-${buildNumber}
|
|
</artifactNamedVersion>
|
|
<shadedJarName>${project.artifactId}-${project.version}-shaded
|
|
</shadedJarName>
|
|
</properties>
|
|
|
|
<scm>
|
|
<connection>scm:git:git@github.com:stackforge/monasca-thresh</connection>
|
|
<developerConnection>scm:git:git@github.com:stackforge/monasca-thresh</developerConnection>
|
|
</scm>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>clojars.org</id>
|
|
<url>http://clojars.org/repo</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>release-deploy-url-override</id>
|
|
<activation>
|
|
<property>
|
|
<name>BUILD_NUM</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<computedVersion>${project.version}</computedVersion>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- Resolve dependency mismatch between Dropwizard and Storm -->
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>1.7.6</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-log4j12</artifactId>
|
|
<version>1.7.6</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<version>17.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.storm</groupId>
|
|
<artifactId>storm-core</artifactId>
|
|
<version>${storm.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-util</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-core</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-model</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-persistence</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-streaming</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-kafka</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>mysql</groupId>
|
|
<artifactId>mysql-connector-java</artifactId>
|
|
<version>5.1.26</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.kafka</groupId>
|
|
<artifactId>kafka_2.9.2</artifactId>
|
|
<version>0.8.0</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>com.sun.jmx</groupId>
|
|
<artifactId>jmxri</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>com.sun.jdmk</groupId>
|
|
<artifactId>jmxtools</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-simple</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<!-- Test dependencies -->
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-testing</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>monasca-common</groupId>
|
|
<artifactId>monasca-common-streaming</artifactId>
|
|
<version>${mon.common.version}</version>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.1</version>
|
|
<configuration>
|
|
<source>1.7</source>
|
|
<target>1.7</target>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>2.16</version>
|
|
<configuration>
|
|
<excludedGroups>performance,functional,integration,database,slow
|
|
</excludedGroups>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<version>2.16</version>
|
|
<configuration>
|
|
<groups>performance,functional,integration,database,slow</groups>
|
|
<skipTests>${skipITs}</skipTests>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
</goals>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/*.class</include>
|
|
</includes>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>1.2</version>
|
|
<configuration>
|
|
<finalName>${artifactNamedVersion}</finalName>
|
|
<createDependencyReducedPom>true</createDependencyReducedPom>
|
|
<filters>
|
|
<filter>
|
|
<artifact>*:*</artifact>
|
|
<excludes>
|
|
<exclude>META-INF/*.SF</exclude>
|
|
<exclude>META-INF/*.DSA</exclude>
|
|
<exclude>META-INF/*.RSA</exclude>
|
|
</excludes>
|
|
</filter>
|
|
</filters>
|
|
<artifactSet>
|
|
<excludes>
|
|
<exclude>junit:junit</exclude>
|
|
<exclude>org.apache.storm:storm-core</exclude>
|
|
<exclude>org.hamcrest:*</exclude>
|
|
</excludes>
|
|
</artifactSet>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
<transformers>
|
|
<transformer
|
|
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
|
<mainClass>monasca.thresh.ThresholdingEngine</mainClass>
|
|
</transformer>
|
|
</transformers>
|
|
<shadedArtifactAttached>true</shadedArtifactAttached>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-scm-plugin</artifactId>
|
|
<version>1.9</version>
|
|
<configuration>
|
|
<tag>${project.version}</tag>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>buildnumber-maven-plugin</artifactId>
|
|
<version>1.2</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>create</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<doCheck>false</doCheck>
|
|
<shortRevisionLength>6</shortRevisionLength>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>2.4.1</version>
|
|
<configuration>
|
|
<descriptors>
|
|
<descriptor>src/assembly/tar.xml</descriptor>
|
|
</descriptors>
|
|
<finalName>${artifactNamedVersion}</finalName>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>make-assembly</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>jdeb</artifactId>
|
|
<groupId>org.vafer</groupId>
|
|
<version>1.0.1</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jdeb</goal>
|
|
</goals>
|
|
<configuration>
|
|
<deb>${project.basedir}/debs/binaries/${artifactNamedVersion}.deb</deb>
|
|
<dataSet>
|
|
<data>
|
|
<type>file</type>
|
|
<src>${project.build.directory}/${shadedJarName}.jar
|
|
</src>
|
|
<dst>/opt/monasca/monasca-thresh.jar</dst>
|
|
</data>
|
|
<data>
|
|
<type>file</type>
|
|
<src>${project.basedir}/src/deb/init/monasca-thresh</src>
|
|
<dst>/etc/init.d/monasca-thresh</dst>
|
|
</data>
|
|
<data>
|
|
<type>file</type>
|
|
<src>${project.basedir}/src/main/resources/logback.xml</src>
|
|
<dst>/etc/monasca/logback.xml</dst>
|
|
</data>
|
|
<data>
|
|
<type>file</type>
|
|
<src>
|
|
${project.basedir}/src/deb/etc/thresh-config.yml-sample
|
|
</src>
|
|
<dst>/etc/monasca/thresh-config.yml-sample</dst>
|
|
</data>
|
|
</dataSet>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>2.5</version>
|
|
<configuration>
|
|
<filesets>
|
|
<fileset>
|
|
<directory>${project.basedir}/debs</directory>
|
|
</fileset>
|
|
</filesets>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
</project>
|