MijnLijn is a free iOS application developed by Coding Mammoth, the company behind Semonto. It provides users with real-time bus and tram schedules from public transport company De Lijn in Flanders, Belgium.
MijnLijn's server setup
The technical setup is pretty straightforward.
- The iOS application is free. You can download it from Apple's App Store.
- The application contains an embedded database with all De Lijn's bus and tram stops. The application processes this data locally and shows all stops on the device.
- When the user requests a real-time bus or tram timetable, the request is submitted to one of the API servers of MijnLijn, which will process the request, check the cache and obtain the data from an internal server of De Lijn if needed.
- The API servers act like proxy servers but also transform and process the results of the De Lijn servers.
This setup allows us to control and protect our access to the servers of De Lijn. We don't need to update the iOS application when the API of De Lijn is changed, and we can implement caching to reduce the amount of calls to the servers of De Lijn. By embedding the database with all stops in the app, we ensure faster search results and reduce the load of the application.
Another advantage of this setup is the ability to monitor the system in more detail.
How we monitor this setup
For this setup we need to monitor the following aspects, the uptime, the 'health' of the API server and periodical database tasks.
Uptime monitoring
Checks whether we can reach all the API servers. Semonto performs numerous tests on all servers every few minutes, ranging from a ping test and an HTTP get request to check if the webserver is up and running to an HTTPS SSL certificate check and chain validation. Semonto will warn us if an SSL certificate is not renewed in time, if the webserver returns error codes or if it times out. All of this appears in a monthly report. Find out more about monitoring SSL-certificates.
Extended server tests
Via the extended tests, Semonto performs deeper tests optimised for MijnLijn's API server. Semonto keeps an eye on the server loads, current memory usage, and disk usage. The results provide insight into the server load and tell us when thresholds are approaching. One of the extended tests is a custom test that analyses the logs of the performed API requests to De Lijn. If too many of our requests to the server of De Lijn fail, or if we are sending out too many requests, Semonto will detect this and warn us. We could also monitor databases and queues, but we are not using those in this setup. Read more about server monitoring and the possibilities of custom server tests.
Semonto PulseChecks
The API server of MijnLijn also performs some periodical tasks. Every morning, logs are analysed, cleaned and optimised. The embedded database source file is updated and fully synced with De Lijn. We use Semonto's PulseCheck feature to ensure that those scripts ran successfully. If a script didn't run and finish in time, Semonto will mark the test as failed. Read more about PulseChecks here.
The MijnLijn project demonstrates that, in addition to great basic features for beginners, Semonto also has some amazing options for advanced users. With self-defined tests and personalised settings, you can monitor just about anything. Ready to give it a go? Create a free trial account and get started in a heartbeat. And if you need any assistance, do not hesitate to consult the help section or reach out to us.