Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestion/Feature Request: Export reports #1588

Open
louanfontenele opened this issue Jan 19, 2025 · 13 comments
Open

Suggestion/Feature Request: Export reports #1588

louanfontenele opened this issue Jan 19, 2025 · 13 comments
Assignees
Labels
funding-available Funding available for this issue. Please see https://checkmate.so for more information good first issue Good for newcomers
Milestone

Comments

@louanfontenele
Copy link

  • Why?
  • In this case, I think it’s interesting to have this feature because we were previously pursuing legal action against a hosting provider. Before discovering Checkmate, we were using Uptime Kuma, which doesn’t have this functionality. I had to resort to a workaround to generate reports and present them in court. This option is excellent because it allows you to have saved data that can serve as evidence, not just for legal matters like the one I mentioned, but for other purposes as well.

Something in HTML would be more interesting, styled to match the site's own design, with options for dark mode or light mode, and including some key data such as:

  • The date the site was added to the system
  • How many times the site went down
  • How many times the site came back online
  • How many times the site was paused
  • Uptime percentage
  • Minimum ping recorded
  • Maximum ping recorded
  • Average ping recorded (Average Response Time)
  • Total number of incidents
  • Total number of checks
  • Check interval (e.g., 1 minute, 3 minutes, etc.)
  • Active for X amount of time
  • Maximum active time
  • Minimum active time
  • Certificate expiration date

With these data points, averages could also be generated, as already available for daily, weekly, and monthly periods. A fourth and final option could calculate averages from the date the site was added up to the date the report is generated.

You could use the style of this site but add the features mentioned earlier. I believe this would make it much more complete. You could even use this idea and set it as the default option. However, an HTML report with charts and numerical data would be perfect.

Image

@gorkem-bwl gorkem-bwl added funding-available Funding available for this issue. Please see https://checkmate.so for more information good first issue Good for newcomers labels Jan 20, 2025
@DMJain
Copy link
Contributor

DMJain commented Jan 20, 2025

I would like help developing this issue. will submit a first draft of approach and downloaded report (in HTML). From there we can confirm what details needs to be modify.

@gorkem-bwl
Copy link
Contributor

Yes, let's do a very minimal (3-4 point) featureset and then we go from there once it's reviewed. Basic idea is that, there will be a button (location TBD) and when the admin clicks on it, he'll see an HTML or PDF version of the report.

@gorkem-bwl gorkem-bwl added this to the 2.1 milestone Jan 20, 2025
@DMJain
Copy link
Contributor

DMJain commented Jan 22, 2025

First Draft:

Image

We can download report in pdf or html. User can choose report file type with dropdown. Currently, the position of download button is beside configure button. Report is generated based on selected date range.

Report contains: Active time, Last Checked, Last Response Time, Avg Response Time, Uptime, DownTime and History.

There is issue with theme for report, trying to fix it that's why it took time for First Draft. still working on it.

product-report-2025-01-22.pdf

video of feature:

FirstDraftReportGenerator.mp4

@gorkem-bwl @ajhollid can you look and tell the changes needed to be done before first of many pull request.

@gorkem-bwl
Copy link
Contributor

Thanks for this. Let me come up with a template and what to include in it, and we go from there!

@gorkem-bwl
Copy link
Contributor

Just fyi, I didn't have much time to think about it, but I'll comment once as soon as possible!

@gorkem-bwl
Copy link
Contributor

Thanks @DMJain. AFAIK this is a rendered / simplified version of the page. Can you confirm?

@DMJain
Copy link
Contributor

DMJain commented Jan 24, 2025

Hey @gorkem-bwl, currently yes a component is rendered with MUI and than being converted into html content before downloading. But I'm thinking of not using MUI for Report Page. instead using simple HTML & CSS. Not able to use Theme provider as component is not being mounted to actual DOM, due to this predefined theme are not getting applied properly to report.

@gorkem-bwl
Copy link
Contributor

Is it possible to get this information via APIs? The reason is that the screen layout is not proper, and info presented there is not the same with what is explained in the issue.

@DMJain
Copy link
Contributor

DMJain commented Jan 26, 2025

Hey, here is the new pdf report with only detail which are explained in issue.
Information is being extracted by getStatsByMonitorId. I'm using only existing APIs.

Portfolio-monitor-report-2025-01-26.pdf

I have tried matching the pdf with style of website using MUI but theme is still an issue as report is not wrapped inside ThemeProvider. so using HTML-CSS. Waiting for layout to apply to report.

@gorkem-bwl what changes are needed to be made?

@gorkem-bwl
Copy link
Contributor

You are right on track.

I checked the PDF file and let me give this a thought today and come back to you.

This style is more than enough for now - no need to work on styling (e.g styling can be applied at a later date).

@DMJain
Copy link
Contributor

DMJain commented Jan 29, 2025

Hey @gorkem-bwl ,

Any updates on the PDF file and the content that needs to be added?

Regarding the custom date range, it's difficult to update with the current implementation. Right now, the date range is based on day, month, and year, and the start and end dates are calculated on the backend. Because of this, there's no API endpoint where I can send a custom end date to generate a report.

Modifying the current implementation would be costly. A faster approach could be creating a new endpoint, but it requires proper design, review, implementation, and testing. Could you look into this?

For now, we can proceed with the current implementation (day, month, year) and consider this change in future updates.

Thanks!

@gorkem-bwl
Copy link
Contributor

Any updates on the PDF file and the content that needs to be added?

Regarding the custom date range, it's difficult to update with the current implementation. Right now, the date range is based on day, month, and year, and the start and end dates are calculated on the backend. Because of this, there's no API endpoint where I can send a custom end date to generate a report.

Modifying the current implementation would be costly. A faster approach could be creating a new endpoint, but it requires proper design, review, implementation, and testing. Could you look into this?

For now, we can proceed with the current implementation (day, month, year) and consider this change in future updates.

Thanks!

Sorry - dropped the ball on this. A few modifications I would propose:

  1. Move "report generated on" section to the top.
  2. Is "Portfolio Monitoring" the name of the monitor?
  3. If a ping is more than 2000 ms, then convert to seconds.
  4. Only the first letters of every phrase in the pdf should be uppercase, the rest remains lowercase
  5. Cover the range information below the header.

Regarding the range, what is the current date range you have in the sample report?

@gorkem-bwl
Copy link
Contributor

@DMJain how long does it take for the server to create a report?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
funding-available Funding available for this issue. Please see https://checkmate.so for more information good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants