amir20 / dozzle

Realtime log viewer for docker containers.
https://dozzle.dev/
MIT License
5.7k stars 287 forks source link

Improvements to loggings #3229

Closed amir20 closed 2 weeks ago

amir20 commented 3 weeks ago

Describe the feature you would like to see

I have been thinking of a couple improvements to log view that I want to cover this in feature.

Describe how you would like to see this feature implemented

No response

Describe any alternatives you've considered

No response

amir20 commented 3 weeks ago

Currently, this progress bar is how much content is in the browser. I think this number should actually be changed to how much logs are available to be fetched.

Screenshot 2024-08-25 at 8 26 10 AM

So if now is Aug 25th, and the container was started seven days ago, the progress bar would be at 0% seven days ago and 100% today.

amir20 commented 3 weeks ago

Add some UI indication when in live mode. See https://github.com/amir20/dozzle/issues/3225#issuecomment-2308164373

ps. a little indication on the ui that we are in "live mode" can be useful: pretty often i scroll a little up and after a bit that i see no message coming i go down and i get the "Skipped xxx entries" that will cause me to lose that logs as the only way to retrive is a refresh (and make me realize that i was ignoring new messages)

I have no idea what this could look like. But I like this suggestion by @FrancYescO

amir20 commented 3 weeks ago

Last one, try again to fetch more when zero logs are returned. This is also covered https://github.com/amir20/dozzle/issues/3222

FrancYescO commented 3 weeks ago

Also the "Skipped xxx entries" can be changed to something like "skipped x entries from date to date" and if clicked should allow you to fetch the skipped logs

amir20 commented 3 weeks ago

Also the "Skipped xxx entries" can be changed to something like "skipped x entries from date to date" and if clicked should allow you to fetch the skipped logs

That was on my todo list. Probably won't get to it this time.

@FrancYescO What do you think live indicator should look like? I have been thinking about it and having a brain block. 🫠

FrancYescO commented 3 weeks ago

I have no idea what this could look like. But I like this suggestion by @FrancYescO

I was expecting something really simple like a little "live dot" in bottom right or maybe on the top bar (that will disappear if you scroll up or maybe if losing webstream connection)

https://lottiefiles.com/free-animation/circle-animation-t3Y2jTXrNJ

FrancYescO commented 3 weeks ago

Also a pulsing 1px bar on bottom of the log entries can be very indicative that we are in live mode listening for new rows

amir20 commented 2 weeks ago

I liked the idea of pulsing bar. I have something https://github.com/amir20/dozzle/pull/3231

https://github.com/user-attachments/assets/9dbc9f7c-c28f-49f9-a1ca-5f5d43999d31

amir20 commented 2 weeks ago

@FrancYescO I have merged 3 PRs in master:

You should be able to test all these with amir20/dozzle:master.

Improving the progress bar will be more work so I'll work on that when I have some free time.

amir20 commented 2 weeks ago

In light mode, the bar looks very faded 🫠. I'll worry about it later...

FrancYescO commented 2 weeks ago

I think all issue are fixed, i can also confirm that the performance will get worse when a lot of messages are loaded in the ui (lot of scrolling up, also the scroll down will be lagghish) so the real game changer was to make the buffer smaller as you said

just a minor thing , i'm using the compact mode and i think these gaps can be totally removed :P image padding-bottom: 1rem;

idk why happened, i was in live mode, and i still got few "skipped xxx messages"

image

looks like that after i've loaded some messages in the past the live mode is not working correctly until a refresh

amir20 commented 2 weeks ago

Still working on padding and stuff....

idk why happened, i was in live mode, and i still got few "skipped xxx messages"

I haven't changed anything in that logic but I will pay attention if it happens.

Looks like I introduced a bug where if there actually isn't any messages then it does an infinite loops. :P

amir20 commented 2 weeks ago

I did the scroll progress where the progress reflects the total logs available. It's pretty amazing. I don't know why I didn't think about this before.

See https://github.com/amir20/dozzle/pull/3236

FrancYescO commented 2 weeks ago

I haven't changed anything in that logic but I will pay attention if it happens.

maybe is something related to scrolling, something like "if not scroll automatically fast enought during burst the skip message will popup" is pretty replicable on my logs (also if i never scroll up to load something older) and now i can surely say that is not myself that have scrolled up a little

Looks like I introduced a bug where if there actually isn't any messages then it does an infinite loops. :P

i thinked about it, but i have not reached the start of logs to test :D

amir20 commented 2 weeks ago

Merging last PR. For now I am going to resolve this. @FrancYescO can you keep trying master over the next few days and let me know if you have any big bugs?

FrancYescO commented 2 weeks ago

maybe i misunderstood something... but my percentage seems is still related to logs in browser and not from the created date of the container also in the actual master tag

except this more the once also if pulsating bar was there log where not coming and i had to switch the container or refresh to get last logs... i haven't found an easy replicable path but this is happening often to me on container that have irregular logs this is a 2min count of how many entries in the specific second:

   4 2024-08-26T17:56:22
 340 2024-08-26T17:57:25
 436 2024-08-26T17:57:26
 536 2024-08-26T17:57:27
 476 2024-08-26T17:57:28
 544 2024-08-26T17:57:29
 544 2024-08-26T17:57:30
 528 2024-08-26T17:57:31
  80 2024-08-26T17:57:32
 376 2024-08-26T17:57:37
   4 2024-08-26T17:57:39
 312 2024-08-26T17:58:42
 416 2024-08-26T17:58:43
 528 2024-08-26T17:58:44
 456 2024-08-26T17:58:45
 564 2024-08-26T17:58:46
 568 2024-08-26T17:58:47
 572 2024-08-26T17:58:48
  68 2024-08-26T17:58:49
   4 2024-08-26T17:58:53
 372 2024-08-26T17:58:54
   4 2024-08-26T17:58:56
 356 2024-08-26T17:59:59

note that there are a lot of seconds missing = 0 entries

amir20 commented 2 weeks ago
Screenshot 2024-08-26 at 1 29 55 PM

Do you have the latest version? You should see a little new text now like 3 minutes ago.

amir20 commented 2 weeks ago

Oh hmmm on a related note, I do see the bug you were talking about before. Seems like skipped logs shows up even when live.

amir20 commented 2 weeks ago

That might have been a stupid bug which now fixed with 0798de3b.

Wait 5 minutes and try again with master.

FrancYescO commented 2 weeks ago
Screenshot 2024-08-26 at 1 29 55 PM

Do you have the latest version? You should see a little new text now like 3 minutes ago.

Yup i've wait for the CI, i was also testing the pr tag but i noticed no difference, btw going to retry soon, maybe some browser cache...

amir20 commented 2 weeks ago

I probably should put the git version for master. 🤷🏼‍♂️

FrancYescO commented 2 weeks ago

ok i can confirm that is now working on master... maybe adding decimals to the percentage can be useful (or maybe still not in my case...): i scrolled a bit but i was still at 100% :P

also idk if something is different but i noticed on mobile it appear a lot smoother when scrolling with a lot of log loaded