Some feature maybe usefull to implement
Features
Monitoring List:
- Dashboard Option ?
- Sorting option (when your list begin to be bigger)
Option when adding monitor:
- [HTTP] Add a header / a body when you want monitor specific services
- [HTTP] Add a response checker if there is a correct string into the response (like monitoring an API, and the API return something like
{status: 200, message:"Database UP !"} - Configure at what time/how many time per day/when we want to check if the service is up.
- A pause button (when there is a bug on a server and for each ping it send a mail, I prefer stop the monitor than remove it temporarily)
- A tag option
Setup:
- Podman/Docker image ?
- A reset password or something to reset the password in case we forgot ?
[HTTP] Add a header / a body when you want monitor specific services:
- Headers should have been an option already, thanks for bringing that up. I'll add that with the next update.
[HTTP] Add a response checker if there is a correct string into the response :
- I was thinking about a response checker, but couldn't find a way to do it without making a mess of the setup screen. But that's definitely planned for some point.
Configure at what time/how many time per day/when we want to check if the service is up:
- This again is something that would make the UI pretty messy, I have looked at possibly using cron jobs instead of the current interval stuff. It would definitely be nice, but becomes annoying when creating a clean UI around this. I will add this to the list, cause it's definitely something I want for myself as well.
A pause button:
- Yep, already done this for next update (in 0.7.1)
- And a clone button is also being adding :)
A tag option:
- A tag similar to how labels work on Github? If so, that's planned with the rewrite of permissions/auth update. Which will hopefully be 0.9.0
A reset password or something to reset the password in case we forgot?:
- There is already a command available, I'll add it to the documentation at some point as well. But you can use
npm run reset:password, and that'll prompt you for an email. Doing it through UI makes it a little bit complicated as you'd need to send out an email or some sort of notification.
My questions:
- What do you mean by dashboard option?
- What other type of sorting would you like to see? Currently there's search, and up/down status.
- By any chance are you good with Podman/Docker image and could possibly help out? It's a new world for me, and I'm still learning a lot about how it works and how I'd set it up for Lunalytics.
Dashboard Option ?
What do you mean by dashboard option?
By Dashboard option I mean something anybody can consult (not only connected user), something maybe you can personalize from behind and prevent anon user to have access to the configuration board.
Sorting option (when your list begin to be bigger)
What other type of sorting would you like to see? Currently there's search, and up/down status.
If I want to reorder the list manually (eg: put "home ping" at first then "grandma ping" at the second and "vps 321 check" at third, ...).
Podman/Docker image ?
By any chance are you good with Podman/Docker image and could possibly help out? It's a new world for me, and I'm still learning a lot about how it works and how I'd set it up for Lunalytics.
Sure why not ! :) I can try to do that when I have some time ! But I need to know what file are modified when I execute the program, eg: I need to know what data are saved and where the app save the data:
- in a db ?
- in a file ?
- where is the data for user access?
- where is the data for monitor setup ?
- where is the data for environment setup ?
- there is also a log file somewhere maybe ?
- other files who are modified when I launch the app ?
Docker and Podman are called container manager, a container is like a virtual machine, it's an isolated environment from the host system and it contain applications who can be executed by this system, the difference is
- virtual machine contain all the layer of the machine (including the bios) + the system itself and it require lot of memory
- container is just a layer above the kernel, it mean there is no low layer management (it's like a software in your computer)
the second point is about the difference between podman and docker is about "restricted" part. Docker use a "root" daemon to execute and manage container, where podman don't have daemon and can be executed by the user without need to be root.
Hey, yeah I have a dashboard system coming soon with the next update (0.8.0) but it'll be called status pages. There are going to be dashboards in the future but it's a bit hard to explain how it'll work.
Reordering the list would actually be really cool, I'll look into how I can do this and have an update soon ish.
Files/folders that are created/updated:
/config.json - Stores information about the database, jwt secret, and some other stuff
/logs/ - Folder storing weekly log files of an issues that have occurred
/server/database/sqlite/[name].db - SQLite database for storing monitors, users, heartbeats, etc... Name is whatever the user enters when setting up, by default lunalytics.db
That should be all the files that are modified when the application launches.
I know a bit about docker and how it works, but Podman is something totally new for me. Thanks for taking the time to explain that helped a lot!
As of https://github.com/KSJaay/Lunalytics/pull/65 (0.7.3) the following features have been implemented from this issue:
- HTTP Headers
- HTTP Body
- Cloning monitors
- Pausing monitors
What still needs to be implemented:
- Docker support
- Dashboard/status pages (Next update)
- Allowing a better sorting system for homepage
- Option for tags/labels (Allow searching/sorting by tags)
- Possibly cron jobs for monitoring uptime
As of https://github.com/KSJaay/Lunalytics/pull/69 (0.8.2) the following features have been implemented from this issue:
- HTTP Headers
- HTTP Body
- Cloning monitors
- Pausing monitors
- Docker support
- Dashboard/status pages (Waiting for incidents before making fully available)
What still needs to be implemented:
- Allowing a better sorting system for homepage
- Option for tags/labels (Allow searching/sorting by tags)
- Allowing cron jobs for monitoring uptime
What do you mean by "Waiting for incidents before making fully available" for the status pages?
Status pages have already been fully implemented into the codebase, you can checkout the design by going to /status-pages/configure. However, I haven't made them available through navigation as incident reporting is still missing from status pages.
Incident reporting will allow you to inform users about any current incidents, or future maintenance. I'm currently working on that, which has been taking a lot longer than expected. But hopefully should be done within the next two/three weeks.
Is there a way I can support you a bit? I couldn't find a donation link or anything, but you've been super helpful and quick to respond, and Lunalytics is fantastic.
Never really thought about getting donations for this project. More of just enjoy doing this stuff and keeping it up to date.
Let me have a look and I'll get back to you on that, maybe have an Open Collective, ko-fi or just PayPal. More of leaning towards Open Collective.
@NilsMoller If you're still interested in donating, I've set it up using GitHub sponsors as it allows one time payments as well.
https://github.com/sponsors/KSJaay
As of https://github.com/KSJaay/Lunalytics/pull/77 (0.9.0) the following features have been implemented from this issue:
- HTTP Headers
- HTTP Body
- Cloning monitors
- Pausing monitors
- Docker support
- Dashboard/status pages
What still needs to be implemented:
- Allowing a better sorting system for homepage
- Option for tags/labels (Allow searching/sorting by tags)
- Allowing cron jobs for monitoring uptime
Hello, small update for you. Once PR https://github.com/KSJaay/Lunalytics/pull/181 has been merged you'll have a bit of a nicer sorting system for the monitors on the homepage. I'll be expanding on this to add folders.
What still needs to be implemented:
- Option for tags/labels (Allow searching/sorting by tags)
- Allowing cron jobs for monitoring uptime