AblyMonitor is a real time dashboarding app that visualizes exceptions as they are thrown from your services via Ably channels.
Built for the Ably Realtime Experiences hackathon 2023.
Demo Video: https://youtu.be/jolhdVxnEgU
Live URL: https://ably-monitor.vercel.app/
Apps like Sentry and Datadog exist for observability, but they often come with complex setups and a steep learning curve, and sometimes you may just be looking at a narrower problem of needing exception monitoring.
AblyMonitor works by integrating into your application and capturing exceptions as they occur. It provides a real-time dashboard that displays these exceptions in a user-friendly manner, allowing developers to quickly identify and respond to issues.
Ably also supports real time use cases nicely and provides some persistence for messages, enabling a 24 hour retention for free with sent messages. In production use cases, this could be extended by adding a backend API that can store and retrieve longer history much like a Datadog or Sentry.
To run AblyMonitor, follow these steps:
-
Add your variables to
.env.samplein the root and ./server folders. Copy to an equivalent.envfile. These files contain your Ably key and desired channel for message passing for the app. -
Install the necessary dependencies using
yarn. -
Start the dashboard by running
yarn dev. -
[Optional] You can also run the Python error generation script to simulate errors (used in demo video). In the project's server directory, install necessary dependencies and execute
python exception.py.
exception.py simulates an exception coming from a production server in practice.
To use AblyMonitor, simply self host the front end project, and connect up publish_exception like the below with your channel configuration.
# This could be called in a production context with access to an Ably channel.
async def publish_exception(channel , e: Exception):
message = CustomException(e).get_json()
result = await channel.publish('exception', message)
print('Published error: ', message)
- Ensuring real-time exception capture and synchronization with the dashboard.
- Managing the scalability and performance of the system as exceptions poured in.
- Implementing a user-friendly and intuitive dashboard interface.
- Real-time data synchronization and handling in a web application using the Ably server and client sdks.
- The nuances of basic exception capture and presentation.
- The importance of user experience and interface design in monitoring tools.
- Adding support for more programming languages and frameworks.
- Implementing intelligent exception categorization and prioritization.
- Expanding integration options with popular application monitoring and alerting systems.





