151b062 | brharrington | 23 February 2017, 22:36:18 UTC | allow `last` summary stat to be used with filters (#510) The last value for a given time series is already being tracked as part of the summary stats, but was not supported by the `:stat` operator. This change allows that stat to be used as part of a filter. | 23 February 2017, 22:36:18 UTC |
ac799c7 | brharrington | 20 February 2017, 17:22:09 UTC | update dependencies (#509) Main change is to pick up spectator version that fixes an issue with timers for some request stats under reporting (Netflix/spectator#376). | 20 February 2017, 17:22:09 UTC |
a10d4c8 | Brian Harrington | 20 February 2017, 16:59:12 UTC | equalsverifier 2.2.1 | 20 February 2017, 16:59:12 UTC |
6a78c42 | Brian Harrington | 20 February 2017, 16:52:37 UTC | sbt-jmh 0.2.21 (jmh 1.17.4) | 20 February 2017, 16:52:37 UTC |
c5fdad8 | Brian Harrington | 20 February 2017, 16:50:35 UTC | jol 0.7.1 | 20 February 2017, 16:50:35 UTC |
3f4fe0d | Brian Harrington | 20 February 2017, 16:49:41 UTC | aws-java-sdk 1.11.93 | 20 February 2017, 16:49:41 UTC |
28d3535 | Brian Harrington | 20 February 2017, 16:48:57 UTC | slf4j 1.7.23 | 20 February 2017, 16:48:57 UTC |
7ee182c | Brian Harrington | 20 February 2017, 16:48:32 UTC | iep 0.4.16 | 20 February 2017, 16:48:32 UTC |
0c88315 | Brian Harrington | 20 February 2017, 16:47:25 UTC | jackson 2.8.6 | 20 February 2017, 16:47:25 UTC |
bb2edf1 | Brian Harrington | 20 February 2017, 16:45:07 UTC | spectator 0.52.0 Fixes issue with timers for some request stats under reporting (https://github.com/Netflix/spectator/pull/376). | 20 February 2017, 16:45:07 UTC |
2a6cf89 | brharrington | 20 February 2017, 02:15:21 UTC | rewrite simple regex OR queries (#508) Changes simple regex OR queries to use a set of basic `StringMatcher`s. This significantly improves performance for the most common cases we see in practice. | 20 February 2017, 02:15:21 UTC |
a9fb61a | brharrington | 20 February 2017, 02:15:02 UTC | short circuit AND queries in roaring index (#507) Updates the `RoaringTagIndex` to short-circuit AND queries just like `LazyTagIndex`. The second query will not only be performed if the first query has a non-empty result set. In the test environment this was the main cause of slower results when using `RoaringTagIndex` instead of `LazyTagIndex`. Also updates the version to 0.6.36. | 20 February 2017, 02:15:02 UTC |
95ee30d | brharrington | 18 February 2017, 03:29:30 UTC | check for null token in foreachItem helper (#506) If the function `f` has a bug and consumes the `END_ARRAY` token, then before it would result in an endless loop. With this change it will fail quickly. | 18 February 2017, 03:29:30 UTC |
9d4b2c8 | brharrington | 18 February 2017, 03:20:47 UTC | workaround for `:percentiles` on no data line (#505) In some use-cases the internal legacy system will try to eval with an explicit no data line being passed to the percentile operator. This results in an error: ``` java.util.NoSuchElementException: key not found: percentile ``` With this change we just propagate the no data line if the input does not contain the expected tags. | 18 February 2017, 03:20:47 UTC |
aac06cc | brharrington | 15 February 2017, 17:21:26 UTC | do not apply heartbeat interval to rates (#504) If a heartbeat interval larger than the step is applied to rates, then it can artificially inflate the overall count. This can happen on occasion with the expiration pattern used by spectator and servo when reporting counters if the counter gets an update exactly one interval after it expired. Counters should be fine because they will compute the delta and average over the missed interval. The heartbeat is retained for this use-case as poller using a fixed delay may have a reporting interval that is slightly larger than the specified step. Fixes #497. | 15 February 2017, 17:21:26 UTC |
0540a55 | brharrington | 15 February 2017, 16:11:45 UTC | split out helper method for creating the graph (#503) Adds a helper method for creating the graph definition without actually rendering it. Useful for some cases where we want to do a standalone eval and then manipulate the results rather than output to the user. | 15 February 2017, 16:11:45 UTC |
098274f | brharrington | 11 February 2017, 03:37:12 UTC | fix internal server error due to access logging (#501) The access logger would create a URI instance and the `java.net.URI` class is strict when parsing. This has been changed to just pass in the string. It appears that the `toString` for the spray/akka-http Uri class changed in akka-http to be more consistent with what the user actually used. | 11 February 2017, 03:37:12 UTC |
4770896 | brharrington | 10 February 2017, 04:50:47 UTC | fix #498, always honor order (#500) The order was getting ignored if there wasn't an explicit sort setting. | 10 February 2017, 04:50:47 UTC |
4c3a235 | brharrington | 10 February 2017, 03:02:41 UTC | fix CORS headers on preflight request (#499) When switching to akka-http there was a regression in the routes. The CORS headers were no longer getting added to the OPTIONS preflight request. For the original issue see #259. This passes the test case in that commit comment using chrome. Also adds local unit test that verifies the headers are present. | 10 February 2017, 03:02:41 UTC |
d3caf33 | brharrington | 08 February 2017, 20:12:46 UTC | update reference.conf to use akka-http settings (#496) Updates our reference.conf to use the settings from akka-http rather than spray. | 08 February 2017, 20:12:46 UTC |
a2340b4 | brharrington | 07 February 2017, 17:44:36 UTC | cleanup usages of DiagnosticMessage.sendError (#495) The DiagnosticMessage object had some helper methods left over for sending an error response to an ActorRef. These will not work correctly using `akka-http` and the usages would not work as expected. * `TagsRequestActor`: using the handleExceptions which would not send the exception to the correct place if caught. This has been changed to remove the actor and inline into the tags api using an ask on the db actor. For now a timeout of 60s is used, but that should probably get changed. Ideally the future will get mapped directly to the data request call and then the server request timeout will be sufficient. That way there would be no nested timeouts. Will follow up on that front in later PRs. * `EvaluateActor`: was broken. It would ignore the `ImperativeRequestContext` messages being sent and the user would get a request timeout. This was also inlined into the evaluate api as there doesn't seem to be a good reason for the separate actor. Still need to create a test case for the evaluate api. | 07 February 2017, 17:44:36 UTC |
cc79e54 | brharrington | 07 February 2017, 15:34:49 UTC | remove WebApi.getJsonParser (#494) Replaces the old `getJsonParser` helper with a directive `jsonParser`. The directive will work for all entity types rather than just strict entities that have a single `ByteString`. | 07 February 2017, 15:34:49 UTC |
dff38bf | brharrington | 02 February 2017, 02:56:57 UTC | fix compiler warnings under 2.12 (#492) | 02 February 2017, 02:56:57 UTC |
b8b4dce | brharrington | 01 February 2017, 23:04:24 UTC | setup cross build for 2.12 (#491) | 01 February 2017, 23:04:24 UTC |
fc355f7 | Brian Harrington | 01 February 2017, 22:45:54 UTC | enable cross build with 2.12.1 and 2.11.8 The 2.12.1 version is now the default version. Travis is set to build for both 2.12 and 2.11. | 01 February 2017, 22:45:54 UTC |
33a1a31 | Brian Harrington | 01 February 2017, 22:01:25 UTC | scala-logging 3.5.0 | 01 February 2017, 22:01:25 UTC |
6eb2f74 | Brian Harrington | 01 February 2017, 21:58:11 UTC | sbt-scoverage 1.5.0 | 01 February 2017, 21:58:11 UTC |
6160081 | Brian Harrington | 01 February 2017, 21:56:59 UTC | redisclient 3.3 | 01 February 2017, 21:56:59 UTC |
c3bc608 | brharrington | 01 February 2017, 21:08:52 UTC | switch from spray to akka-http (#490) Initial attempt at switching from spray to akka-http. | 01 February 2017, 21:08:52 UTC |
49e9a05 | brharrington | 31 January 2017, 19:07:24 UTC | remove use of sleep in SSEActorSuite (#489) | 31 January 2017, 19:07:24 UTC |
2347719 | brharrington | 31 January 2017, 19:00:01 UTC | propagate exception if thrown in constructor (#488) The json decoder will now unwrap the `InvocationTargetException` and throw the cause. This avoids a bunch of reflection non-sense the user does not care about and make it easier to see the root issue for why decoding failed. | 31 January 2017, 19:00:01 UTC |
0916d5f | brharrington | 28 January 2017, 05:55:08 UTC | fix possible IAE if NaN values are in sorted set (#487) In some cases the sort would fail with: ``` IllegalArgumentException: Comparison method violates its general contract! ``` This was caused by having a mix of NaNs in the set of values being sorted. This change switches to use `Double.compare` which takes NaN values into account. | 28 January 2017, 05:55:08 UTC |
75aa46a | brharrington | 27 January 2017, 03:08:03 UTC | update license year (#486) | 27 January 2017, 03:08:03 UTC |
6a1144d | brharrington | 27 January 2017, 02:56:39 UTC | remove test sqs filter from config (#485) The filter for testing was left in the config. As it is not generally applicable it should not be in the base config files. | 27 January 2017, 02:56:39 UTC |
908011d | brharrington | 27 January 2017, 02:56:23 UTC | move ec2 credit to separate block (#484) This makes it easier to query for just the t2 credit metrics rather than all ec2 metrics. | 27 January 2017, 02:56:23 UTC |
04686b5 | brharrington | 26 January 2017, 17:15:16 UTC | add in mapping for t2 cpu credit metrics (#483) | 26 January 2017, 17:15:16 UTC |
e0972c7 | brharrington | 26 January 2017, 04:46:44 UTC | fix bug with equality check on SmallHashMap (#482) For maps with the same length and hashCodes the equality check would fall back to `dataEquals`. That method had a bug where if different keys were in the same position of the underlying data array, then the values would not get checked and the entry would get skipped. This could cause some maps to incorrectly get treated as being equal even though they are not. | 26 January 2017, 04:46:44 UTC |
e5ccaa9 | brharrington | 25 January 2017, 21:35:55 UTC | cleanup imports for lwcapi (#481) | 25 January 2017, 21:35:55 UTC |
3d8d58f | Michael Graff | 24 January 2017, 05:46:25 UTC | set content type for sse and json responses (#480) | 24 January 2017, 05:46:25 UTC |
520493a | brharrington | 17 January 2017, 16:47:01 UTC | impl of TagIndex using roaring bitmaps (#479) Adds an implementation of the `TagIndex` that uses roaring bitmaps as the underlying integer sets. Will follow up with some benchmarks and then see how it does on real world data sets. | 17 January 2017, 16:47:01 UTC |
22e306b | brharrington | 16 January 2017, 21:19:21 UTC | update dependencies (#478) | 16 January 2017, 21:19:21 UTC |
8db102d | Brian Harrington | 16 January 2017, 18:20:53 UTC | spectator 0.47.0 Updates test cases to fix issue with gauge checks. | 16 January 2017, 20:42:23 UTC |
b8253a0 | Brian Harrington | 16 January 2017, 17:51:49 UTC | frigga 0.17.0 | 16 January 2017, 18:02:25 UTC |
4e6ca9a | Brian Harrington | 16 January 2017, 17:50:47 UTC | equalsverifier 2.1.8 | 16 January 2017, 18:02:25 UTC |
6cad7e4 | Brian Harrington | 16 January 2017, 17:49:57 UTC | aws-java-sdk 1.11.78 | 16 January 2017, 18:02:24 UTC |
c82f736 | Brian Harrington | 16 January 2017, 17:49:19 UTC | iep 0.4.15 | 16 January 2017, 18:02:24 UTC |
8032e09 | Brian Harrington | 16 January 2017, 17:47:09 UTC | slf4j 1.7.22 | 16 January 2017, 17:47:09 UTC |
158558f | Brian Harrington | 16 January 2017, 17:46:06 UTC | akka 2.4.16 | 16 January 2017, 17:46:06 UTC |
5039f28 | Michael Graff | 09 January 2017, 19:22:03 UTC | track bytes sent for limiting resource usage (#475) This patch changes limiting outstanding messages to limiting outstanding bytes for slower readers. The limit is set to 10 megabytes per stream. Also, individual metrics are combined into a single HTTP write request every 100 ms (hard coded) or 100k of buffered data (hard coded) | 09 January 2017, 19:22:03 UTC |
f65e031 | brharrington | 04 January 2017, 21:09:16 UTC | update license headers for 2017 (#476) | 04 January 2017, 21:09:16 UTC |
e778302 | Michael Graff | 22 December 2016, 20:55:32 UTC | implement etags (#474) Implement ETag and If-None-Match headers for expression responses | 22 December 2016, 20:55:32 UTC |
3b00a75 | Michael Graff | 20 December 2016, 23:53:12 UTC | Change the heartbeat to a statistics report, and show number of failed messages (#473) | 20 December 2016, 23:53:12 UTC |
aca2cfb | brharrington | 14 December 2016, 14:26:17 UTC | docs: remove internal link from wiki (#472) Looks like it was added to help guide internal users that might go to this wiki. Other links should suffice and we'll revisit if it becomes a problem. Fixes #471. | 14 December 2016, 14:26:17 UTC |
ace239f | Michael Graff | 08 December 2016, 20:33:57 UTC | Validate the post data before we create the actor (#470) | 08 December 2016, 20:33:57 UTC |
988abf2 | brharrington | 05 December 2016, 18:20:46 UTC | docs: cleanup page on alerting expressions (#469) Do a pass over the alerting expressions page and make it usable. Also fixes bug in script for the image link url used with markdown templates in the root directory. | 05 December 2016, 18:20:46 UTC |
ac216d8 | brharrington | 02 December 2016, 22:45:46 UTC | reduce Tuple2 allocations when building index (#468) The largest group of allocations when rebuilding the index was for Tuple2 objects created as part of looping over the tags. This adjusts the structure of the maps a bit so we can avoid creating those objects. | 02 December 2016, 22:45:46 UTC |
d9b0739 | Michael Graff | 02 December 2016, 04:32:00 UTC | initial version of lwc api (#459) May need to find a better, name. LWC (lightweight client) API is meant to provide a simple intermediate service so we can remove a lot of the functionality that has built up in the java client over time. This is especially important given increasing internal emphasis on polyglot and stream processing. Many of the features in the internal Atlas client library follow the pattern of taking a data expression and outputting the data to it. These grew over time so there are now a bunch of different forms such as on-instance alert, cloudwatch publishing, file logging, critical clusters, etc. The LWC API can be used as a common service where those use-cases will subscribe to get the data from the clients. The actual client library then only needs to support subscriptions and understand the query/data expr subset of stack expressions to allow for local filtering and aggregation. | 02 December 2016, 04:32:00 UTC |
8028082 | brharrington | 01 December 2016, 05:13:10 UTC | docs: update docs for axis scale param (#465) | 01 December 2016, 05:13:10 UTC |
692d77e | brharrington | 30 November 2016, 04:33:01 UTC | fix behavior of log scale for small values (#464) Values between 0.0 and 1.0 were not being handled correctly when using the log scale. Now the values will get shifted by 1.0 before passing into the log function so the value we compute the log on will always be >= 1.0. For negative values we still reflect the log behavior across the axis, but now the 0 mark will be positioned based on the amount above and below rather than always centering it. The makes log match the other scales. | 30 November 2016, 04:33:01 UTC |
077d6b6 | brharrington | 28 November 2016, 14:03:08 UTC | allow axis scale to be explicit (#463) Adds a `scale` parameter to the graph api that takes a string value representing the scale type to use. This replaces the boolean flag `o` parameter used to indicate a logarithmic scale. The `o` param is still supported as a fallback if `scale` is not set for backwards compatibility. The primary advantages of this change are to potentially allow for additional scale types and to allow any scale type to be explicitly set in the configuration. With the previous settings linear was only available as the default if logarithmic was not set. This change also adds power scales (`y=a*x^e+b`) with exponents of 2 (`pow2`) and 0.5 (`sqrt`). | 28 November 2016, 14:03:08 UTC |
bfac889 | brharrington | 23 November 2016, 16:05:11 UTC | avoid using String.format in hot code paths (#462) String.format uses regex internally to parse the format string. This makes it quite expensive and removing the usage is an easy win. | 23 November 2016, 16:05:11 UTC |
86b8e46 | Brian Harrington | 23 November 2016, 15:53:49 UTC | benchmark showing `format` against `zeroPad` | 23 November 2016, 15:53:49 UTC |
2344928 | Brian Harrington | 23 November 2016, 15:42:33 UTC | use zeroPad for creating id strings | 23 November 2016, 15:42:33 UTC |
3332fdb | Brian Harrington | 23 November 2016, 15:27:46 UTC | use zeroPad for encoding color values Changes v2 json encoder to use a custom zero pad function for color values rather than String.format. ``` Benchmark Mode Cnt Score Error Units before thrpt 10 104178.301 ± 6087.260 ops/s after thrpt 10 142775.471 ± 6897.508 ops/s ``` | 23 November 2016, 15:27:46 UTC |
8582532 | Brian Harrington | 23 November 2016, 13:59:52 UTC | remove number_format flag This option isn't being used internally and the String.format calls have a high overhead due to use of regex internally. For outputs with lots of numbers this significantly improves the encoding speed. Sample for a 12h graph with 2 lines at minute resolution: ``` Benchmark Mode Cnt Score Error Units before thrpt 10 48793.213 ± 1442.775 ops/s after thrpt 10 130050.003 ± 7937.085 ops/s ``` | 23 November 2016, 13:59:52 UTC |
b7cabaf | brharrington | 23 November 2016, 02:47:56 UTC | fix handling for JsonDeserialize(using=...) (#461) This was getting ignored before. | 23 November 2016, 02:47:56 UTC |
1f50b83 | brharrington | 22 November 2016, 00:16:34 UTC | improve performance for accessing deserializer (#460) Comparing our custom deserializer for case classes to the default from jackson module scala: ``` Benchmark Mode Cnt Score Error Units default thrpt 10 39889.677 ± 483.340 ops/s custom thrpt 10 12219.647 ± 479.135 ops/s ``` There is a big slow down. Most of that was for trying to find the contextual deserializer for the field types. Adding something to cache that: ``` custom thrpt 10 36432.024 ± 867.252 ops/s ``` | 22 November 2016, 00:16:34 UTC |
5ee641f | brharrington | 21 November 2016, 15:54:26 UTC | add hashed selection mode for color palettes (#458) Allows the color to be selected based on the hash of the label so that the same label can deterministically get the same color across charts. | 21 November 2016, 15:54:26 UTC |
eb33d8a | brharrington | 21 November 2016, 15:41:04 UTC | update dependencies (#457) | 21 November 2016, 15:41:04 UTC |
1cdc89b | Brian Harrington | 21 November 2016, 13:43:37 UTC | sbt 0.13.13 | 21 November 2016, 13:43:37 UTC |
1918c41 | Brian Harrington | 21 November 2016, 13:37:18 UTC | sbt-jmh 0.2.17 | 21 November 2016, 13:37:18 UTC |
f514cff | Brian Harrington | 21 November 2016, 13:35:58 UTC | spectator 0.44.0 | 21 November 2016, 13:35:58 UTC |
3e6bf91 | Brian Harrington | 21 November 2016, 13:34:49 UTC | iep-0.4.11 | 21 November 2016, 13:34:49 UTC |
3f346c1 | brharrington | 15 November 2016, 21:46:27 UTC | docs: fix link to overview slides (#456) | 15 November 2016, 21:46:27 UTC |
1677a47 | brharrington | 11 November 2016, 15:37:19 UTC | honor jackson annotations on case class params (#455) | 11 November 2016, 15:37:19 UTC |
462ced1 | Brian Harrington | 11 November 2016, 15:28:50 UTC | jackson 2.8.4 | 11 November 2016, 15:28:50 UTC |
3dcd895 | Brian Harrington | 11 November 2016, 15:22:19 UTC | use BeanProperty for finding field deserializers Creates a BeanProperty for each field of the case class so the context can be maintained when finding the contextual deserializer for the fields. In particular, this allows jackson to access the annotations such as `JsonDeserialize` on the parameters of the case class constructor. | 11 November 2016, 15:22:19 UTC |
330e5fe | Brian Harrington | 08 November 2016, 22:19:00 UTC | honor JsonProperty annotation Have custom case class deserializer honor `@JsonProperty` annotations on the fields. | 08 November 2016, 22:19:00 UTC |
27094d3 | brharrington | 08 November 2016, 14:16:44 UTC | 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:16:44 UTC |
619142e | brharrington | 08 November 2016, 13:52:27 UTC | 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, 13:52:27 UTC |
2bc3e52 | brharrington | 03 November 2016, 15:10:21 UTC | docs: getting started version to 1.5.0 (#449) | 03 November 2016, 15:10:21 UTC |
1571b97 | brharrington | 03 November 2016, 15:01:39 UTC | update to spray 1.3.4 (#450) | 03 November 2016, 15:01:39 UTC |
0bf37bc | Brian Harrington | 03 November 2016, 14:51:48 UTC | spectator 0.43.0 and iep 0.4.10 | 03 November 2016, 14:51:48 UTC |
629d99d | Brian Harrington | 03 November 2016, 14:46:40 UTC | 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. | 03 November 2016, 14:46:40 UTC |
558bbfa | brharrington | 29 October 2016, 16:42:03 UTC | update base version for master to 1.6.x (#448) | 29 October 2016, 16:42:03 UTC |
69aa97f | brharrington | 29 October 2016, 14:14:06 UTC | update dependencies (#447) | 29 October 2016, 14:14:06 UTC |
99ce6cd | Brian Harrington | 29 October 2016, 14:04:55 UTC | scalatest 3.0.0 | 29 October 2016, 14:04:55 UTC |
d46ba5a | Brian Harrington | 29 October 2016, 13:55:40 UTC | equalsverifier 2.1.6 | 29 October 2016, 13:55:40 UTC |
a8021e7 | Brian Harrington | 29 October 2016, 13:54:06 UTC | iep 0.4.9 | 29 October 2016, 13:54:06 UTC |
756b68a | Brian Harrington | 29 October 2016, 13:50:56 UTC | sbt-jmh 0.2.16 | 29 October 2016, 13:50:56 UTC |
7c20b73 | Brian Harrington | 29 October 2016, 13:44:17 UTC | aws-java-sdk 1.11.49 | 29 October 2016, 13:45:08 UTC |
daed62a | Brian Harrington | 29 October 2016, 13:42:52 UTC | jol 0.6 | 29 October 2016, 13:42:52 UTC |
5bb4e6d | Brian Harrington | 29 October 2016, 13:41:59 UTC | log4j 2.7 | 29 October 2016, 13:41:59 UTC |
abd41f1 | Brian Harrington | 29 October 2016, 13:34:05 UTC | akka 2.4.12 | 29 October 2016, 13:34:05 UTC |
d784f60 | Brian Harrington | 29 October 2016, 13:25:12 UTC | spectator 0.42.0 | 29 October 2016, 13:25:12 UTC |
e01a836 | Brian Harrington | 29 October 2016, 13:21:29 UTC | jackson 2.8.3 | 29 October 2016, 13:21:29 UTC |
faee3cb | brharrington | 26 October 2016, 20:31:08 UTC | 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 | brharrington | 24 October 2016, 22:18:44 UTC | 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 | brharrington | 10 October 2016, 20:13:16 UTC | fix update of invalid datapoints metric (#444) The counter was not getting incremented. | 10 October 2016, 20:13:16 UTC |
27036e4 | brharrington | 01 October 2016, 21:48:40 UTC | 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 |