Jon Chambers
444f6ca826
Consolidate "closed connection" errors, but add an "exception" dimension
2024-11-12 11:54:47 -05:00
Jon Chambers
0ea13ec528
Handle static "closed" exceptions
2024-11-12 11:54:47 -05:00
Jon Chambers
a843f1af6c
Rename PubSubClientEventManager to WebSocketConnectionEventManager
2024-11-11 15:30:26 -05:00
Jon Chambers
e53a9f3f1a
Close WebSockets "harshly" if a close frame write fails
2024-11-11 11:42:01 -05:00
Ravi Khadiwala
776c147ea4
Tighten up Semaphore release in WebSocketConnection
2024-11-08 14:21:12 -06:00
Jon Chambers
6a1f4906c5
Retire the legacy message availability system
2024-11-07 12:09:21 -05:00
Jon Chambers
ef716aacc2
Shift authority for message availability to the pub/sub event system
2024-11-07 11:55:47 -05:00
Jon Chambers
1c167ec150
Retire the legacy client presence system
2024-11-06 14:57:27 -05:00
Jon Chambers
96a4d4c8ac
Prepare to receive client events about persisted messages
2024-11-06 14:42:55 -05:00
Jon Chambers
9d19fc9ecc
Shift authority to the new pub/sub client presence system
2024-11-06 12:10:44 -05:00
Jon Chambers
aad12670b2
Register WebSocket connections as pub/sub event listeners
2024-11-06 09:37:06 -05:00
Jon Chambers
3e36a49142
Reframe "connection ID" as "server ID" to avoid double-removing clients
2024-11-05 18:43:31 -05:00
Jon Chambers
8c984cbf42
Introduce and evaluate a client presence manager based on sharded pub/sub
2024-11-05 15:51:29 -05:00
Jon Chambers
100955a7db
Migrate WebSocket duration instrumentation to OpenWebSocketCounter
2024-10-02 14:02:03 -05:00
Jon Chambers
3ed142d0a9
Introduce OpenWebSocketCounter
2024-10-01 14:17:17 -04:00
Jon Chambers
581e61a85b
Count open provisioning WebSockets
2024-10-01 14:17:17 -04:00
Jon Chambers
764b200289
Clarify open websocket gauge name
2024-10-01 14:17:17 -04:00
Jon Chambers
26503dffdf
Use a consistent provisioning address
2024-10-01 13:34:37 -04:00
Jon Chambers
b284e95394
Clarify ProvisioningAddress field naming
2024-10-01 12:59:58 -04:00
Jon Chambers
b2211de8d8
Retire ProvisioningAddress and WebsocketAddress
2024-10-01 12:59:58 -04:00
Jon Chambers
0a1161048f
Document ProvisioningController and ProvisioningConnectListener
2024-10-01 11:40:40 -04:00
Chris Eager
11601fd091
Multi-recipient message views
...
This adds support for storing multi-recipient message payloads and recipient views in Redis, and only fanning out on delivery or persistence. Phase 1: confirm storage and retrieval correctness.
2024-09-04 13:58:20 -05:00
Jon Chambers
f09cc03164
Detect message delivery loops
2024-08-30 16:27:21 -04:00
Jon Chambers
659ac2c107
Generalize push notification scheduler and add support for delayed "new messages" notifications
2024-08-16 16:16:55 -04:00
Jon Chambers
0075e94a42
Rename AuthenticatedAccount to AuthenticatedDevice
2024-08-14 12:44:48 -04:00
Jon Chambers
3b405a53d0
Move "push notifications on close" logic to WebSocketConnection
2024-08-14 12:24:49 -04:00
Chris Eager
6eed458ceb
Use server timestamp for delivery duration metrics
2024-07-18 12:22:59 -05:00
Jon Chambers
4f10014902
Add an "is primary" dimension to message latency measurements
2024-07-17 15:01:08 -04:00
Jonathan Klabunde Tomer
01743e5c88
Delete messages lazily on account and device deletion to prevent timeouts when deleting accounts/devices with large queues
2024-06-04 12:16:43 -07:00
Ravi Khadiwala
40639f70f4
Fix flaky MessageMetricsTest
...
Make the MeterRegistry in MessageMetrics configurable
2024-05-16 13:39:17 -05:00
Chris Eager
a38bf25e68
Migrate remaining custom metrics from Dropwizard to Micrometer
...
And remove some that are obsolete or duplicative.
2024-04-17 15:35:04 -05:00
Chris Eager
fcc77052a6
Add org.eclipse.jetty.io.EofException to expected measureSendMessageErrors
2024-04-01 17:06:29 -05:00
Ravi Khadiwala
26ffa19f36
Lifecycle management for Account objects reused accross websocket requests
2024-02-22 12:05:32 -06:00
Chris Eager
a74438d1ee
Add test for concurrent in-flight outbound messages on WebSocket queue processing
...
This also elevates the implicit default concurrency (via reactor’s `Queues.SMALL_BUFFER_SIZE`) to be explicit.
2023-11-27 14:37:46 -06:00
Chris Eager
2bc4412d66
Encapsulate device ID in ProvisioningAddress
2023-11-02 11:48:10 -05:00
Chris Eager
6a428b4da9
Convert Device.id from long to byte
2023-11-02 11:48:10 -05:00
Jon Chambers
f0ab52eb5d
Rename "master device" to "primary device"
2023-10-20 10:52:13 -04:00
Chris Eager
6522b74e20
Remove obsolete metrics
2023-10-03 11:42:25 -05:00
Sergey Skrobotov
d0fdae3df7
Enable header-based auth for WebSocket connections
2023-09-25 12:14:40 -07:00
Chris Eager
0e989419c6
Add metric for late removal of message availability and displacement listeners
2023-09-19 12:04:24 -05:00
Chris Eager
29ca544c95
Revert "Set suppressCancel=true in Mono.fromFuture"
...
This reverts commit 8348263fab .
2023-09-07 17:03:33 -05:00
Chris Eager
92bb783cbb
Use static exception instance when a connection is closed
2023-09-07 16:06:16 -05:00
Chris Eager
8348263fab
Set suppressCancel=true in Mono.fromFuture
2023-09-07 16:06:03 -05:00
Chris Eager
a9a2e40fed
Move onErrorResume to individual sendMessage Mono
2023-09-07 11:15:57 -05:00
Chris Eager
2d187abf13
Handle WebSocket sendMessage errors with onErrorResume
2023-09-06 15:53:01 -05:00
Jon Chambers
a96ee57c7e
Defer asynchronous actions when deriving Mono instances from futures
2023-08-22 16:28:02 -05:00
Jon Chambers
4ead8527c8
Use ClientReleasesManager when deciding whether to add client version tags
2023-07-26 16:41:54 -04:00
Jon Chambers
abb32bd919
Introduce "service identifiers"
2023-07-21 09:34:10 -04:00
Jon Chambers
6db97f5541
Standardize client tag version handling; add client version tags to delivery latency metrics
2023-07-11 13:35:29 -04:00
Jon Chambers
a768498250
Record general message delivery latency
2023-06-21 15:10:14 -04:00