I was recently working on a connection issue with Eventstore and persistent subscriptions, when I came across a helpful url that gives more detail about the persistent subscription.
With chrome open to the persistent subscription dashboard, then open the chrome dev tools, you will see a bunch of calls to a “/subscriptions” endpoint.
This endpoint loads all of the information seen on the screen for each persistent subscription you have defined.
[ { "links": [ { "href": "http://localhost:2113/subscriptions/%24ce-Foo/FooSubscription/info", "rel": "detail" } ], "eventStreamId": "$ce-Foo", "groupName": "FooSubscription", "parkedMessageUri": "http://localhost:2113/streams/%24persistentsubscription-%24ce-Foo::FooSubscription-parked", "getMessagesUri": "http://localhost:2113/subscriptions/%24ce-Foo/FooSubscription/1", "status": "Live", "averageItemsPerSecond": 0.0, "totalItemsProcessed": 6928, "lastProcessedEventNumber": 1061119, "lastKnownEventNumber": 1061128, "connectionCount": 3, "totalInFlightMessages": 0 } ]
As you can see the response object has some basic information, however the “links” collection provides another url, “/info” for the specific persistent subscription.
{ "links": [{ "href": "http://localhost:2113/subscriptions/%24ce-Foo/FooSubscription/info", "rel": "detail" }, { "href": "http://localhost:2113/subscriptions/%24ce-Foo/FooSubscription/replayParked", "rel": "replayParked" }], "config": { "resolveLinktos": true, "startFrom": -1, "messageTimeoutMilliseconds": 30000, "extraStatistics": false, "maxRetryCount": 10, "liveBufferSize": 500, "bufferSize": 500, "readBatchSize": 20, "preferRoundRobin": true, "checkPointAfterMilliseconds": 2000, "minCheckPointCount": 10, "maxCheckPointCount": 1000, "maxSubscriberCount": 0, "namedConsumerStrategy": "RoundRobin" }, "eventStreamId": "$ce-Employee", "groupName": "EmployeeSvc", "status": "Live", "averageItemsPerSecond": 0.0, "parkedMessageUri": "http://localhost:2113/streams/%24persistentsubscription-%24ce-Foo::FooSubscription-parked", "getMessagesUri": "http://localhost:2113/subscriptions/%24ce-Foo/FooSubscription/1", "totalItemsProcessed": 6928, "countSinceLastMeasurement": 0, "lastProcessedEventNumber": 1061119, "lastKnownEventNumber": 1061128, "readBufferCount": 0, "liveBufferCount": 500, "retryBufferCount": 0, "totalInFlightMessages": 0, "connections": [{ "from": "10.1.1.101:50753", "username": "admin", "averageItemsPerSecond": 0.0, "totalItemsProcessed": 35, "countSinceLastMeasurement": 0, "extraStatistics": [], "availableSlots": 10, "inFlightMessages": 0 }, { "from": "10.1.1.102:5169", "username": "admin", "averageItemsPerSecond": 0.0, "totalItemsProcessed": 35, "countSinceLastMeasurement": 0, "extraStatistics": [], "availableSlots": 10, "inFlightMessages": 0 }, { "from": "10.1.1.103:55791", "username": "admin", "averageItemsPerSecond": 0.0, "totalItemsProcessed": 36, "countSinceLastMeasurement": 0, "extraStatistics": [], "availableSlots": 10, "inFlightMessages": 0 }] }
Opening the “/info” link provides you with the full persistent subscription configuration, current metrics and what was helpful to me was a collection of the current connections.