Commit Graph

128 Commits

Author SHA1 Message Date
Jon Chambers 7faf143a97 Subdivide the account database crawler cache experiment and add logging to track down lingering disagreements. 2020-06-17 09:23:40 -04:00
Jon Chambers 17cfd4924c Fixed a poorly-mirrored write operation to the new cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers a0bebca1e6 Extend Experiment to report more detail when results don't match. 2020-06-16 16:46:41 -04:00
Jon Chambers 75cbfa2898 Mirror unlock-via-script calls to the cache cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers 58a8ed1588 Add a cluster-friendly version of LuaScript. 2020-06-16 16:46:41 -04:00
Jon Chambers e032f8df59 Add a command for clearing the cache cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers b16e37d80a Record a histogram of incoming message list sizes. 2020-06-12 14:43:50 -04:00
Jon Chambers c17cc07b73 Instrument BlockingThreadPoolExecutor. 2020-06-12 14:43:50 -04:00
Jon Chambers 6f767a72a7 Add a timer for the private sendMessage method. 2020-06-12 14:43:50 -04:00
Jon Chambers 11196436e9 Time rate limiter validation calls. 2020-06-12 14:43:50 -04:00
Jon Chambers 9afc433db4 Record exceptions associated with server responses. 2020-06-11 22:08:07 -04:00
Jon Chambers f701e3d834 Record distributions of timer values; stop recording error causes. 2020-06-11 11:50:36 -04:00
Jon Chambers 4c623ca3c5 Compare Redis reads using Lettuce's synchronous path. 2020-06-11 11:50:36 -04:00
Jon Chambers 0671f05c05 Introduce experiment comparison methods for suppliers. 2020-06-11 11:50:36 -04:00
Jon Chambers 0713da7393 Record experiment results with a timer instead of a counter. 2020-06-11 11:50:36 -04:00
Jon Chambers 05955d0483 Check for null header values before trying to iterate through them. 2020-06-09 15:45:32 -04:00
Jon Chambers 28c765bd9a Add an in-app-context test for websocket metrics. 2020-06-09 15:45:32 -04:00
Ehren Kret 8287317be7 Add account device ID to the prekey rate limiter
This limits prekey fetching per device on an account instead of on an
account level.
2020-06-09 10:20:10 -07:00
Jon Chambers ec858b2d4c
Set a timeout for Redis cluster operations and shut down the cluster as part of service shutdown 2020-06-07 18:27:57 -04:00
Jon Chambers 47ece983d2 Added a Redis cluster health check. 2020-06-07 18:27:11 -04:00
Jon Chambers 52310b5dd9 Compare results of reads from old and new Redis caches. 2020-06-07 18:27:11 -04:00
Jon Chambers c2a4a2778e Introduce the Experiment class to compare results from parallel systems. 2020-06-07 18:27:11 -04:00
Jon Chambers 1db5977e80 Mirror username deletes unconditionally. 2020-06-07 18:27:11 -04:00
Jon Chambers 1b5dc0e434 Fixed a potential issue where locks could get out of sync between Redis instances. 2020-06-07 18:27:11 -04:00
Moxie Marlinspike f07f02d866 Deliver upgrade link to stale clients 2020-06-06 18:20:55 -07:00
Jon Chambers 1388103919 Mirror writes to the cache cluster. 2020-06-06 20:37:48 -04:00
Jon Chambers fe1054d58a Introduce a Lettuce-based fault-tolerant Redis cluster accessor. 2020-06-06 20:37:48 -04:00
Jon Chambers ba6ac778fc Update to Pushy v0.14.1. 2020-06-05 12:21:56 -04:00
Jon Chambers 228ffcbfce Differentiate between websocket and "boring" HTTP traffic. 2020-05-28 12:52:49 -04:00
Jon Chambers f18ab9e5cc Measure traffic from websockets. 2020-05-28 12:52:49 -04:00
Jon Chambers 06c82ee87d Celebrate the diversity of UA strings when generating tags for metrics. 2020-05-27 19:35:42 -04:00
Jon Chambers 9ba5ee8043 Move UA tag extraction into its own utility class. 2020-05-27 19:35:42 -04:00
Ehren Kret eede4e50ca
Use hashed UUID to spread last seen updates over a full day (#40) 2020-05-26 13:38:52 -07:00
Jon Chambers aa10f63d9f Add the timestamp using the `add` method. 2020-05-22 17:39:25 -04:00
Jon Chambers a25af36e32 Include timestamps in all server-to-client websocket messages. 2020-05-22 15:13:39 -04:00
Jon Chambers 817f057927 Inject timestamps into responses. 2020-05-22 15:13:39 -04:00
Jon Chambers a13c44d81a Capture request-level metrics (path, status, client platform/version). 2020-05-20 17:48:19 -04:00
Jon Chambers 45ad8f8ffb Add the Wavefront/Micrometer reporter as a dependency and configure a registry. 2020-05-20 17:46:07 -04:00
Ehren Kret 7da9e88c0b Add hashKey to RemoteConfig
This allows the percentages for different entries in remote config to
be aligned so one remote config can be a subset of another.
2020-05-13 11:08:22 -07:00
Jon Chambers 1c73c91133 Report the number of days until the CDS CA cert expires as a metric so we can set an alarm. 2020-05-12 12:57:11 -04:00
Jon Chambers b1d11d4f69 Use APNs signing keys instead of expiring certificates. 2020-05-12 12:48:28 -04:00
Jon Chambers 001a9310c3
Support device transfers (SERVER-41, SERVER-42) (#32)
This change introduces a `transfer` device capability and account creation argument in support of the iOS device transfer effort.
2020-05-12 12:23:18 -04:00
Moxie Marlinspike 8ffadfa1f1 Add payment addresses on account attributes update 2020-05-07 09:52:38 -07:00
Jon Chambers 50d7929e76 Drop the GCM `RECEIPT` message type (unused). 2020-05-04 17:51:54 -04:00
Jon Chambers 10840b22c5 Don't let one unregistered device block receipt for others. 2020-05-04 17:51:25 -04:00
Jon Chambers acfbab5915 Update to Pushy v0.13.11. 2020-05-04 17:50:35 -04:00
Ehren Kret 48c324fe86 Use a static sequence of randomness in tests
The RemoteConfigControllerTest#testMath unit test would occassionally
fail because randomness doesn't necessarily group into expected ranges
over a finite trial count. This changes the test to use a predefined
PRNG sequence instead of one that varies with each test so that the
test will no long randomly fail.
2020-04-29 17:31:43 -07:00
Ehren Kret 0c495e7e72 Workaround lack of internal retry on transaction rollback
The get endpoint for key fetching can fail if the transaction cannot
complete because of simultaneous modification. Clients currently
receive 500 from this and retry if it happens, but this test case runs
into it without retrying and then complains that not all the threads
completed successfully. This workaround adds some retry attempts.
2020-04-29 17:10:13 -07:00
Ehren Kret 50ccfee201 Allow remote config to send non-boolean values
This version of remote config allows non-boolean values to be returned
to clients but unfortunately limits the configuration to only one
value or another. There is no way to configure more than two values
for the same key with this setup.
2020-04-29 10:51:10 -07:00
Moxie Marlinspike fa739c9594 Bump zkgroups to 0.7.0 2020-04-28 08:58:57 -07:00