Time series monitoring and alerting platform.
Switch branches/tags
absolute-path-for-deploy-scripts absolute-path add-argus-sdk-readme-badge add-gpg-name-email addAnnotation adechambers-patch-1 customRetention customRetention2 customRetention3 develop dilipdevaraj-sfdc-patch-1 gh-pages jpa_bugfix_new jpa_bugfix jsonIgnoreProperties kafkaclients9 kn-test master mq-disable-options mvn-profile-cleanup new-doclint-for-javadoc-plugin nkunal-patch-1 redis_incrby release/2.10.0 release/2.11.0 release/2.12.0 release/2.13.0 release/2.14.0 release/2.15.0 release/2.16.0 release/2.17.0 release/2.17.1 release/2.18.0 release/2.19.0 release/2.20.0 release/2.21.0 release/2.22.3 release/2.22.4 release/2.22.5 snyk-fix-0iahsm snyk-fix-1unh6f snyk-fix-3tv28f snyk-fix-4ebk62 snyk-fix-6lvb7m snyk-fix-6p824z snyk-fix-7kizmz snyk-fix-8yho0a snyk-fix-9dv5cm snyk-fix-11lb3q snyk-fix-33n44p snyk-fix-50hyea snyk-fix-61t32c snyk-fix-246r9l snyk-fix-ablh1e snyk-fix-aj6sr4 snyk-fix-amnrvc snyk-fix-b35q5t snyk-fix-e3joql snyk-fix-ein8f4 snyk-fix-f91h9m snyk-fix-fxe3xf snyk-fix-g92zbu snyk-fix-i6rq4l snyk-fix-izk28y snyk-fix-jh5kvr snyk-fix-k1ftd1 snyk-fix-k61602 snyk-fix-mqv12k snyk-fix-nmr55t snyk-fix-o526lf snyk-fix-ou7aow snyk-fix-p914af snyk-fix-psqenx snyk-fix-q1nelj snyk-fix-r37j0w snyk-fix-scylb1 snyk-fix-t3rbqn snyk-fix-tyt2o1 snyk-fix-u2dzuf snyk-fix-u5dagf snyk-fix-v9uync snyk-fix-vrvsb6 snyk-fix-x0q81z snyk-fix-xn54n3 snyk-fix-xnq3s2 snyk-fix-xurh6m snyk-fix-yl4scj source-to-dot-in-travis-scripts textractor-patch-1 unbind-docker-maven xizi-xu-patch-1
Nothing to show
Clone or download
cnardi-dev Merge pull request #1013 from cnardi-dev/develop
Add default downsample options to metric search queries
Latest commit 121b59a Dec 5, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ArgusClient increment spec and versions Oct 25, 2018
ArgusCore Including triggered by metric whenever it is not null in the notifica… Nov 2, 2018
ArgusDocker Change docker org rmelick->salesforce Oct 15, 2017
ArgusSDK increment spec and versions Oct 25, 2018
ArgusWeb add default downsample options to metric search queries Nov 30, 2018
ArgusWebServices Removing uncessary exception handling Oct 25, 2018
SPECS increment spec and versions Oct 25, 2018
src sync TSDB readendpoint cycling iterable, add modifiable log file name Jul 13, 2018
.gitignore Alerts Refactoring changes Oct 17, 2018
.travis.deploy.sh Resolve conflict between develop and 2.15.0 Jun 23, 2018
.travis.gpg.sh Call .travis.deploy.sh w/bash and use curly braces Jun 21, 2018
.travis.settings.xml Add .travis.deploy.sh, .travis.settings.xml Jul 25, 2017
.travis.yml do not use docker, since not enough space available to build, also lo… Sep 24, 2018
ArgusUIScreenshot.png update readme screenshot Apr 17, 2018
LICENSE.txt Initial checkin Jan 29, 2016
Makefile RPM permission issue Mar 21, 2017
README.md +Argus SDK README badge (points to Maven Central) Jul 29, 2018
argus-build.properties Making the AuditService configurable so that tests can still use the … Mar 19, 2018
pom.xml increment spec and versions Oct 25, 2018
project.version increment spec and versions Oct 25, 2018
update-version add a script that helps update all version numbers (#977) Oct 25, 2018

README.md

Argus Build Status Static Analysis argus-sdk - Maven Central

Argus is a time-series monitoring and alerting platform. It consists of discrete services to configure alerts, ingest and transform metrics & events, send notifications, create namespaces, and to both establish and enforce policies and quotas for usage.

Its architecture allows any and all of these services to be retargeted to new technology as it becomes available, with little to no impact on the users.

To find out more see the wiki and check out the release notes.

Argus UI

Building Argus

Installing The Resource Filters

Argus uses the argus-build.properties file as a resource filter for the build and all the module builds. After you clone the project for the first time, or after you change this file, you must create and install the dependency jars which will contain these filters. Those dependency jars are then pulled in by the modules, expanded and have their values applied to the module specific builds. Luckily, it's a straightforward operation. Just execute the following command from within the parent project, after you first clone the project or after you update the argus-build.properties file.

mvn -DskipTests=true -DskipDockerBuild --non-recursive install

Running The Unit Tests

Once the resource filters are installed, you can run unit tests. Running the unit tests doesn't require any changes to the argus-build.properties file. Just install the resource filters and execute the test goal.

mvn test

Only the unit tests are run by codecov.io and as such, the coverage reported by it is significantly less than the coverage obtained by running the full test suite.

Running The Integration Tests

The integration tests for Argus use the LDAPAuthService implementation of the AuthService interface and the DefaultTSDBService implementation of the TSDBService interface (which targets OpenTSDB). Additionally it uses the RedisCacheService implementation of the CacheService interface to facilitate integration testing of the BatchService. In order to run the integration tests you must update the argus-build.properties file to correctly setup the external LDAP you'll be testing against and the OpenTSDB endpoints to use as well as the Redis cluster. The snippet below shows the specific properties that should be modified in the argus-build.properties file. Of course, after you make these updates, you must re-install the resource filter dependencies as described above and execute the clean goal, before running the integration tests.

# The LDAP endpoint to use
service.property.auth.ldap.endpoint=ldaps://ldaps.yourdomain.com:636
# A list of comma separated search paths used to query the DN of users attempting to authenticate.
# This example lists two separate search bases.  One for users and one for service accounts.
service.property.auth.ldap.searchbase=OU=active,OU=user,DC=yourdomain,DC=com:OU=active,OU=robot,DC=yourdomain,DC=com
# This specifies of the DN for the privileged user that is used to bind and subsequently execute the search for user DN's
service.property.auth.ldap.searchdn=CN=argus_admin,OU=active,OU=user,DC=yourdomain,DC=com
# The password for the privileged user above.
service.property.auth.ldap.searchpwd=Argu5R0cks!
# The LDAP field with which the username provided during a login attempt, will be matched.
# This is used so Argus can obtain the DN for the user attempting to login, and subsequently attempt to bind as that user.
service.property.auth.ldap.usernamefield=sAMAccountName
# The TSDB read endpoint
service.property.tsdb.endpoint.read=http://readtsdb.yourdomain.com:4466
# The TSDB write endpoint
service.property.tsdb.endpoint.write=http://writetsdb.yourdomain.com:4477
# The Redis cache cluster information
service.property.cache.redis.cluster=redis0.mycompany.com:6379,redis1.mycompany.com:6389

Once the modifications have been made and the resource filters re-installed, you're ready to run the complete suite of tests, including the integration tests.

mvn verify

Generating Coverage Reports

Coverage is calculated everytime tests are run for all modules with the exception of ArgusWeb. In order to generate a coverage report for a module, just cd into the module subdirectory and run the report generation target.

mvn jacoco:report

Coverage reports are generated in the target/site/jacoco directory.

Deploying & Running Argus

Please see the wiki for information on how to deploy, configure and run Argus.