https://github.com/Netflix/atlas

sort by:
Revision Author Date Message Commit Date
37771dd backport select changes from 1.6 to 1.5.x branch (#454) 08 November 2016, 15:09:40 UTC
e093545 some patterns incorrectly interpretted as indexOf (#453) For simple patterns the `StringMatcher` will convert them to basic string operations that perform better than using regular expressions. If a simple pattern had an explicit end anchor, then it was incorrectly choosing the `IndexOf` matcher rather than falling back to using `Regex`. This change fixes the `IndexOf` pattern and also adds an `Equals` matcher to cover the simple case using `String.equals`. 08 November 2016, 14:21:10 UTC
ec1d41a fix #451: port setting in sample memory.conf (#452) Port setting in sample memory.conf was not updated to reflect changes introduced in #396. 08 November 2016, 14:20:51 UTC
ed0f6cf update to spray 1.3.4 This version fixes a security vulerability for directory traversals on Windows: https://groups.google.com/forum/#!topic/spray-user/4V3F_oLm_TA We aren't using that method directly and do not run on Windows, but that might not be true downstream. 08 November 2016, 14:20:40 UTC
1fea402 docs: getting started version to 1.5.0 (#449) 08 November 2016, 14:20:25 UTC
69aa97f update dependencies (#447) 29 October 2016, 14:14:06 UTC
99ce6cd scalatest 3.0.0 29 October 2016, 14:04:55 UTC
d46ba5a equalsverifier 2.1.6 29 October 2016, 13:55:40 UTC
a8021e7 iep 0.4.9 29 October 2016, 13:54:06 UTC
756b68a sbt-jmh 0.2.16 29 October 2016, 13:50:56 UTC
7c20b73 aws-java-sdk 1.11.49 29 October 2016, 13:45:08 UTC
daed62a jol 0.6 29 October 2016, 13:42:52 UTC
5bb4e6d log4j 2.7 29 October 2016, 13:41:59 UTC
abd41f1 akka 2.4.12 29 October 2016, 13:34:05 UTC
d784f60 spectator 0.42.0 29 October 2016, 13:25:12 UTC
e01a836 jackson 2.8.3 29 October 2016, 13:21:29 UTC
faee3cb improve generic type detection (#446) Uses the type information from the bean description when available so we have more context as to the requested types for generic parameters. The `generics 2` test case would fail before this change because it would decode to a `Map` instead of `Inner`. 26 October 2016, 20:31:08 UTC
6c8aade do not call readValue if current token is null (#445) If the current token for the parser is `VALUE_NULL`, then use the default rather than call readValue. The readValue call can throw which will cause it to incorrectly fail to parse the object. Exceptions like: ``` com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of scala.collection.immutable.List out of VALUE_NULL token ``` 24 October 2016, 22:18:44 UTC
9747d94 fix update of invalid datapoints metric (#444) The counter was not getting incremented. 10 October 2016, 20:13:16 UTC
27036e4 fill with zero for periods of inactivity (#442) CloudWatch graphs will frequently show gaps if there is low activity and if the reporting frequency is much larger than the step size used with Atlas. With this change we'll use an explicit zero value. 01 October 2016, 21:48:40 UTC
5a657ee indicate filtering behavior in graph legend (#441) Filters can be confusing when users get an empty graph because nothing matched the filter criteria. The legend should be updated to indicate how filtering modified the result set. 01 October 2016, 21:10:19 UTC
d587ad1 add message to legend to summarize filters For the simple case where there is a single group by expression that is filtered, a message is now added to the legend indicating how many matches there were to the filter. These can quickly get complicated when used with other features. For example, sorting can mix and match lines across multiple expressions. Also binary math operations that combine the results of multiple filter expressions or multi-level group by with filtered input. For now this is just an experiment for the common simple case to see how it impacts usability when dealing with filter expressions that remove some of the lines. 01 October 2016, 20:58:21 UTC
71ef776 remove old diff files if images are now the same Since we no longer generate the diff image if the test and golden files are the same, the old diff images will not get overridden and show up as a diff even if the problem has since been fixed. Now the old diff image will get deleted. 01 October 2016, 19:52:07 UTC
43da9ec add test case for MessageDef rendering 01 October 2016, 19:48:20 UTC
f799e76 use error image for new tests with no golden file Updates the report to make it easier to see images for new tests without having to bless first. 01 October 2016, 17:35:49 UTC
7213191 include all DataDef types in legend Before the legend was only including LineDefs. Now spans are also include and a new MessageDef type is added to allow legend entries that are not tied to visual data. For example, information about filtering the results of a group by where all lines have been removed. 01 October 2016, 17:15:04 UTC
0dead52 restrict image report to diffs by default Updates the GraphAssertions to only show the entries where there are differences by default. The previous behavior is still available by calling `generateReport` with the `diffsOnly` param set to `false`. Also changes the code to only write the diff image to disk if there is an actual difference. 01 October 2016, 17:04:01 UTC
f75fe35 fix minor issues with case class deserializer (#440) This change fixes two issues with the case class deserializer added in #439: 1. We now check the initial token type to verify it is an object. 2. Avoids creating the object before parsing the fields. That was done before to avoid the allocating the argument array for the constructor. However, it prevents users from being able to have additional validation as part of the constructor logic. Now the object will be created after the fields have all been processed and placed in the arguments array. 30 September 2016, 20:19:22 UTC
294dc6b add custom case class deserializer (#439) Adds a custom case class deserializer to the json helper that supports default values used in the case class constructor. This is the more intuitive behavior most users expect and avoids the need for wrapping in Option or having custom deserializers for a given type to fill in the defaults. 28 September 2016, 22:54:05 UTC
77b8eef dependency updates (#437) 25 September 2016, 02:06:03 UTC
ea92e4d fix #436, QueryIndex misses some entries (#438) Once there was a match at a given level it would check the sub-tree, but never check for matches among siblings. Adds the test case from the issue and a second that demonstrates the issue for the `matches` function as well. The original test case would pass for `matches` because both sub-trees in the index would match. 25 September 2016, 02:04:42 UTC
30a5f86 config 1.3.1 25 September 2016, 01:17:56 UTC
0541fcf caffeine 2.3.3 25 September 2016, 01:16:05 UTC
31f41b2 aws-java-sdk 1.11.37 25 September 2016, 01:15:32 UTC
8f08e5b iep 0.4.8 25 September 2016, 01:11:17 UTC
136ec1c jackson 2.8.2 (#434) This version fixes a bug with `Option[Trait]` getting encoded as an empty object. 07 September 2016, 12:00:39 UTC
2cac104 less repetitive expression normalization (#433) Update the `/api/v1/expr/normalize` endpoint to be less repetitive. In particular, the macros like `:avg` and `:dist-stddev` are no longer expanded. Common queries will also get extracted. Analyzing around 60k expressions from logs: | Result | Before | After | |--------------|----------|---------| | longer | 28,682 | 8,968 | | shorter | 30,678 | 46,170 | | same length | 2,630 | 6,852 | 05 September 2016, 22:28:30 UTC
922aeb8 update normalize to be less repetitive This mainly consists of two main changes: 1. Not all macros are expanded. Some such as, `:avg` and `:dist-stddev`, will be preserved so that the user sees the simple operation rather than the full math to compute those operations. 2. Common-queries will now be extracted and added as a final `:list,(,{query},:cq,),:each` expression if it reduces the overall length of the expression. If present, then that will always be the last element in the list of normalized expressions. This change also updates the DES helper macros to avoid expansion. 05 September 2016, 22:12:21 UTC
c34cd38 retain rewrite information for aggr macros For macros that are meant to appear to the user like additional aggregate functions it is preferrable if we keep track of the rewrite rather than fully expand it when presenting the expression to the user. This change adds a NamedRewrite operation that keeps track of the original expression for display as well as the rewritten expression for evaluation. 05 September 2016, 21:16:10 UTC
d1e9318 do not emit trailing comma when settings is empty 05 September 2016, 21:10:56 UTC
c891340 :cq should elide :true for final query When using `:cq` it should elide `:true` if present rather than generating an expression ANDd with `:true`. For example: ``` :true,:sum,name,foo,:eq,:cq ``` Before this change would expand to: ``` :true,name,foo,:eq,:and:sum ``` Now expands to: ``` name,foo,:eq,:sum ``` 05 September 2016, 21:00:31 UTC
9fa557e add helper methods to normalize a query Adds helper functions to normalize a query to CNF or DNF. 04 September 2016, 01:22:54 UTC
4dff5ec update wiki examples to use 1.4.7 (#432) 01 September 2016, 21:25:03 UTC
ccb01d7 fix NPE if keyString is null for subset of values (#429) If a subset of the time series passed to `GroupBy.eval` are missing keys, then a NullPointerException will result when sorting the groups. This change filters out the entries with missing keys and adds some additional test cases for group by. 26 August 2016, 03:57:53 UTC
b5014bc add vpc and subnet to default allowed-keys (#428) Updates the allowed `nf.` keys to include vpc and subnet. 25 August 2016, 22:49:34 UTC
5fea792 add test case for ActorService (#427) Verifies that the actor is created on the expected path. See #417 for more details. 25 August 2016, 03:58:39 UTC
5f1b5a3 fix scaladoc warnings (#426) 25 August 2016, 03:42:58 UTC
081e539 fix warning in test case (#425) Fixes a compiler warning in ClientActorSuite: ``` Warning:(173, 15) non-variable type argument spray.http.HttpResponse in type pattern scala.util.Try[spray.http.HttpResponse] is unchecked since it is eliminated by erasure case t: Try[HttpResponse] => response = t.asInstanceOf[Try[HttpResponse]] ``` 25 August 2016, 03:42:10 UTC
d299de0 add lambda to default list of categories (#424) The conf file is already there, but it got left out of the main list. 25 August 2016, 03:41:57 UTC
5a5ff0d fix batch that is written back (#423) Use the immutable copy rather than the mutable list for the batch that has already been cleared. 24 August 2016, 04:34:29 UTC
d90a0fa update modules to dedup (#422) Changes the guice modules to be final and implement equals and hashCode so that guice will dedup if it is installed multiple times. 24 August 2016, 01:25:07 UTC
304bc26 add poller to collect CloudWatch metrics data (#421) Poller for collecting CloudWatch data and publishing it into Atlas. This is a restructured from the legacy db implementation used internally to wrap CloudWatch. Overall the polling approach is preferred because: * It makes CloudWatch data follow the same path as all other data. This means it is available for teeing to stream processing systems, long term storage in hive, etc. * Querying CloudWatch on-demand does not scale well and it fails frequently due to throttles. In this case there is a consistent load all the time, but we can tune that for the needed set and avoid the really high bursts needed for on-demand queries. * If we are lucky Amazon will support a way to get a stream of all CloudWatch metric data and we can switch to consuming that in the future. In the mean time we can make it look like a stream for most of our use-cases. 23 August 2016, 22:33:32 UTC
c13e114 fix content type for client actor (#420) Updates the content-type to be smile to match the payload. This was mistakenly set as the accept header earlier. 23 August 2016, 03:14:58 UTC
5d74f35 manager for polling data (#418) Adds in the base manager that supervises a set of poller actors. This is used for collecting metrics data from various other services such as edda, healthcheck service, cloudwatch, etc. 18 August 2016, 13:26:34 UTC
51a898b Merge pull request #417 from skandragon/fix-actor-path Set actor name rather than using a generated one. 16 August 2016, 20:50:33 UTC
351f98f Set actor name rather than using a generated one. 16 August 2016, 20:33:41 UTC
df4590e make ending '/' optional in path pattern (#416) Updates the default path pattern to make the ending slash optional. If it is a simple actor path it is usually not present. Makes it match the setting we are typically using internally. 13 August 2016, 14:27:30 UTC
329c331 look for routing config on loaded actors (#415) Looks for routing config on routed actors including the request-handler. 13 August 2016, 14:17:09 UTC
6e37d0a use tag map for block store lookup (#414) The datapoint passed in computes the id on demand which can be slow. The tag map is immutable and has a cached hash code and is thus much cheaper for the initial lookup. 13 August 2016, 14:16:15 UTC
86b7be8 more robust hash code function (#413) Changes the hash code function to be more similar to the MurmurHash3.unorderedHash. This is mostly paranoia that the simple additive method will be terrible for some data sets. There is an added test case that demonstrates a fairly bad case. 10 August 2016, 22:55:12 UTC
e2eef31 improve performance of SmallHashMap equality check (#412) Overrides equals for SmallHashMap to improve the performance. The two main changes are to use the cache hash code as a filter and simply compare the elements of the array. This does much better than the default inherited from GenMapLike that more or less does: ```scala this.forall { t => other.get(t._1) == Some(t._2) } ``` If the elements are not inserted in the same order, then they may be in a different order in the array due to collisions. However, others will be in the correct position and we can limit the lookups to ones where there is a mismatch. **Equal Maps** Checking where the maps being compared are equal: ``` Benchmark Mode Cnt Score Error Units currentEquals thrpt 10 47004215.059 ± 2291847.719 ops/s inheritedEquals thrpt 10 2134457.383 ± 111821.520 ops/s dataEquals thrpt 10 51326103.645 ± 758297.787 ops/s selfEquals thrpt 10 351279563.043 ± 18578115.816 ops/s ``` Note: * `currentEquals` - is SmallHashMap.equals, it does some sanity checks and then calls `dataEquals`. * `inheritedEquals` - is the GenMapLike.equals. * `dataEquals` - is the method used for comparing the array. * `selfEquals` - is comparing against the same instance of the map. Just sanity checks that the special case is fast. **Not Equal Maps** Checking maps that are almost equal except that one data value is different. Using the cached hash code as a pre filter is the biggest contributor: ``` currentEqualsNot thrpt 10 273893522.221 ± 7980051.600 ops/s inheritedEqualsNot thrpt 10 2341207.187 ± 206356.584 ops/s dataEqualsNot thrpt 10 32392263.165 ± 1289262.059 ops/s ``` **Equal with Different Order** Comparing equal maps, but constructed such that the order in the underlying array is different. This means we have to do more lookups rather than just traversing the array. For the examples though there are typically still quite a few entries that are in the same position for both maps. ``` currentEqualHashCodes thrpt 10 14601802.119 ± 360902.793 ops/s inheritedEqualHashCodes thrpt 10 483515.784 ± 10044.781 ops/s ``` 10 August 2016, 21:16:51 UTC
b1d4184 switch to MurmurHash3.arrayHash (#411) Switches the hashCode implementation for SmallHashMap to call `MurmurHash3.arrayHash` instead of relying on the implementation from the super class which calls `MurmurHash3.mapHash`. The array variant is much faster (3-4x) and greatly reduces allocations. 09 August 2016, 23:13:29 UTC
4b0ecca turn off interning while building the index (#410) Adds an option to support turning off string interning while building the index. In many cases the strings will already have been interned while parsing the incoming payload and this additional step is redundant. 09 August 2016, 20:26:31 UTC
69d5b50 reduce size of publish failure response (#409) Fixes a bug where the failure message was getting encoded as a json string inside the message of the json response. Also changes the behavior on failures to have the error count explicitly in the response and limit the number of specific failure messages to the first 5. This significantly reduces allocations and response sizes for payloads with many failures. 09 August 2016, 18:23:58 UTC
7d984bb disable jackson buffer recycling (#408) The thread local buffer recycling in jackson seems to cause corruption in some cases. It is hard to reproduce in a controlled setting, but we see it pretty reliably on a big cluster. After disabling, the corruption is no longer being seen. First observed in jackson 2.7.x. Current tests do not show much performance impact for our use-cases. 08 August 2016, 20:06:41 UTC
cfb302e reduce allocations for computing ids (#407) 06 August 2016, 23:37:22 UTC
e91049b add naive method to computeId benchmark 06 August 2016, 23:12:23 UTC
5811f66 reuse CharBuffer for encoding tag values Most of the allocations for computing ids were for creating the wrapped CharBuffer objects around the strings. This change allocates a fixed buffer and reuses it for each run. Performance is a little bit better: ``` Before: computeIdSmallTagMap thrpt 10 252703.940 ± 11424.615 ops/s After: computeIdSmallTagMap thrpt 10 262549.444 ± 5860.124 ops/s ``` Allocations are a lot better, for the benchmark it reduced by ~6.5GB. 06 August 2016, 22:49:51 UTC
b9aab2c add test case for computing ids 06 August 2016, 22:27:45 UTC
152b0da add benchmark for computing ids 06 August 2016, 21:44:01 UTC
c8ced70 fix #405 possible contract error using desc order (#406) If the input set has many equal values it was possible to get an exception: ``` IllegalArgumentException: Comparison method violates its general contract! ``` This is because the descending order was simply inverting the ascending order comparator. With this change we sort in ascending order and simply reverse the list if it should be descending. 04 August 2016, 03:13:59 UTC
d7eac10 misc build cleanup (#404) 30 July 2016, 21:36:24 UTC
cff596e fix unused import and parens warnings 30 July 2016, 21:26:18 UTC
136943f store creds before doing snapshot build Update snapshot make target to store the credentials first before doing the publish build. This is necessary because if the creds file does not exist when the build starts the bintray plugin will no longer be enabled. 30 July 2016, 21:14:30 UTC
e2036dc fix storeBintrayCredentials task Fixes the storeBintrayCredentials to work when the bintray plugin is disabled. This allows us to generate the file needed by the bintray plugin using the environment variables available in the travis build. 30 July 2016, 21:11:55 UTC
c44b865 reduce repetition across sub-projects 30 July 2016, 20:53:04 UTC
b4a61dc disable bintray unless credentials are present Disables the bintray plugin unless the credentials file is present. This avoids many regular warnings such as: ``` Missing bintray credentials /Users/brharrington/.bintray/.credentials. Some bintray features depend on this. [warn] Credentials file /Users/brharrington/.bintray/.credentials does not exist ``` 30 July 2016, 20:40:04 UTC
d1dd88e fix "wrong forward reference" warnings 30 July 2016, 20:05:43 UTC
9235297 add jsr305 dependency This gets rid of the warnings like: ``` Class javax.annotation.CheckForNull not found - continuing with a stub. ``` This dependency can be removed after we update to scala 2.12. For details see: https://issues.scala-lang.org/browse/SI-9673 30 July 2016, 17:28:24 UTC
b166659 switch from Build.scala to build.sbt Support for Build.scala is going away in future versions. See discussion for more details: https://groups.google.com/forum/#!searchin/sbt-dev/build.scala%7Csort:relevance/sbt-dev/S-pr2nZQ3KY/YhUtksKf5PoJ Migration was surprisingly painless: just rename, delete some of the scaffolding (imports and build object), and cleanup whitespace (`%s/^ //`). 30 July 2016, 17:04:48 UTC
117764b sbt-dependency-graph 0.8.2 30 July 2016, 16:53:28 UTC
50ffd7b remove unnecessary whitespace for plugins 30 July 2016, 16:48:37 UTC
2894903 make it easier to reuse access logging (#403) Splits out a helper class for doing the access logging based on the spray http classes. Makes it easier to reuse in other contexts, in particular, for use with clients. 30 July 2016, 02:33:02 UTC
0e5b51f fix #401, add scala version to artifact id (#402) Makes it easier to automatically detect for tools that want to index scala libraries. 25 July 2016, 23:27:02 UTC
4c360d3 move appender setup to log4j config (#400) For more details see: http://netflix.github.io/spectator/en/latest/ext/log4j2/ Which is a bit out of date, with the change below the ordering issues are no longer a problem when using the appender via the config: https://github.com/Netflix/spectator/commit/33825db0b96e3337f68b85e9ecbc78567071aecc#diff-9bc272482ec3aa21411ff595a1f4225f 21 July 2016, 16:27:13 UTC
4188e3b remove diff helper, can be done with lib if needed (#399) 21 July 2016, 16:14:25 UTC
857888c create module packages for akka/webapi (#398) Pulls the setup logic in standalone into modules that we can just include in other projects. We don't use the standalone jar internally it is just for simple testing. This change allows us to further reduce deviation from oss and internal. 21 July 2016, 16:14:09 UTC
59024bb inject config and actor system (#396) Updates the akka helpers to be more DI friendly. In particular, it removes the dependency on `atlas-config` and injects the `Config` as well as the `ActorSystem`. A helper setting `atlas.akka.actors` is now available in the config to configure an actor to load into the system. 21 July 2016, 04:42:08 UTC
0331af8 remove aws lib (#397) Replaced by [iep-module-aws](https://github.com/Netflix/iep/tree/master/iep-module-aws). 21 July 2016, 03:25:47 UTC
b9dc6d5 update dependencies (#395) 19 July 2016, 12:49:39 UTC
42232fc update jmh plugin (#394) Newer version has convenient option for profiling with flight recorder: `-prof jmh.extras.JFR`. 19 July 2016, 12:41:52 UTC
f21cd0e aws-java-sdk 1.11.18 19 July 2016, 12:36:51 UTC
8cd5bef akka 2.4.8 19 July 2016, 12:36:16 UTC
992668f equalsverifier 2.1.3 19 July 2016, 12:35:35 UTC
4d1d769 log4j 2.6.2 19 July 2016, 12:34:17 UTC
a8e3711 fix #392, use random port for server in MainSuite (#393) 15 July 2016, 21:12:07 UTC
198bfd7 make set load factor consistent with map (#391) See #390 for further details. Deployments with the map changes look good overnight. Changing set to be consistent. 10 July 2016, 15:21:46 UTC
7e015e8 adjust load factor for primitive maps (#390) Changes the primitive maps to resize at 50% full rather than 70%. The 70% factor was originally chosen to keep the memory use lower and for the primary use-cases we didn't see much performance degradation at the time. Rolling it out to more systems though we have started seeing cases where it performs quite badly and 50% does an order of magnitude better. JMH test with a simple example included. ``` 0.7 [info] Benchmark Mode Cnt Score Error Units [info] IntIntMap.testIntIntHashMap800 thrpt 10 10374.640 ± 782.568 ops/s [info] IntIntMap.testIntIntHashMap8k thrpt 10 589.537 ± 8.124 ops/s [info] IntIntMap.testJavaHashMap800 thrpt 10 4051.768 ± 499.362 ops/s [info] IntIntMap.testJavaHashMap8k thrpt 10 2846.103 ± 14.858 ops/s 0.5 [info] Benchmark Mode Cnt Score Error Units [info] IntIntMap.testIntIntHashMap800 thrpt 10 11713.871 ± 271.158 ops/s [info] IntIntMap.testIntIntHashMap8k thrpt 10 3963.805 ± 59.359 ops/s [info] IntIntMap.testJavaHashMap800 thrpt 10 4371.380 ± 93.346 ops/s [info] IntIntMap.testJavaHashMap8k thrpt 10 2709.591 ± 71.376 ops/s ``` 09 July 2016, 19:38:44 UTC
0c0fb6c cleanup state management for expressions (#389) For future work, we will want to render the internal state to JSON or similar. This change set adds a side object for OnlineDes and OnlineSlidingDes which is a simple case class, easily rendered to JSON. This state class is used in the :des and :sdes operators to store and restore internal state, which allows this to be rendered to JSON as well. Additionally, the state passed into StatefulExpression eval() methods is not modified in any expression. 08 July 2016, 20:37:42 UTC
2bafcbc Merge pull request #388 from brharrington/rm-println remove println statements in trend test 07 July 2016, 04:09:51 UTC
back to top