Git Product home page Git Product logo

Comments (8)

meniku avatar meniku commented on July 28, 2024

Thank you for the bug-report, I guess that it takes too long to fetch the logfiles from your cluster.

It may help if you increase the timeout for fetching the compaction log-files by increasing the value of 'compactions.logfile-fetch-timeout-in-seconds' in conf/application.conf.

I will try to add a more helpful error message and to increase the default timeout.

from hannibal.

meniku avatar meniku commented on July 28, 2024

I changed the default timeout to 30 seconds and hope that solves your issues. But I have no idea about your browser showing "'done with errors' and a blank page". Can you write back whether that still happens?

from hannibal.

ranlo avatar ranlo commented on July 28, 2024

increased the timeout. the exception still appears. btw - it could be that the browser errors are unrelated. do you want me to open a new, separate issue?

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Timestamp: Fri, 14 Dec 2012 17:34:57 UTC

Message: Object doesn't support this property or method
Line: 3078
Char: 3
Code: 0
URI: http://localhost:9000/assets/javascripts/d3.v2.js

Message: Object doesn't support this property or method
Line: 396
Char: 2
Code: 0
URI: http://localhost:9000/assets/javascripts/rickshaw.js

from hannibal.

alexandre-normand avatar alexandre-normand commented on July 28, 2024

It seems from the last comments that the timeout on fetching the region server logs is gone but I'm still commenting here to give some additional background from my experience with this.

The 5 seconds default timeout was very aggressive for us since our log max file size is 200 MB. Getting 200 MB under 5 seconds from the host I was running hannibal on was just not feasible. The real problem though is that such huge files will always take a very long time to download. It's also a problem with the memory consomption since the content of the entire log file is kept in memory before parsing. Streaming the content would really help with that but there was a lower-hanging fruit which is just being a bit smarter in fetching logs.

Pull request #7 is my solution to this problem. The log file is retrieved with a range to start from where the last fetch ended. The initial fetch going back 1024 KB (configurable) prior to the current end of the log. With this code, I've been able to remove my heap size setting of 2048 MB and keep the default value without OutOfMemory errors. Also, the 5 seconds timeout was sufficient for me since in most cases, a fetch would be at most 1024 KB (unless logs produce more than 1 MB per 5 minutes).

from hannibal.

meniku avatar meniku commented on July 28, 2024

That's true and I am very happy with your solution - maybe we can also reduce the timeout back to 5 seconds.

from hannibal.

alexandre-normand avatar alexandre-normand commented on July 28, 2024

I'm actually having second thoughts and I'm not entirely sure if my testing on Friday was done using 5 or 30 seconds. In any case, each log fetch felt like less than 5 seconds.

I will check again tomorrow though but I think it would actually make more sense to have the timeout as lenient as it can be to be able to fetch logs for all region servers inside a refresh interval (which I made more agressive in the pull request #7).

from hannibal.

alexandre-normand avatar alexandre-normand commented on July 28, 2024

The fetching of logs is definitely faster now. I'm running this against a 20 nodes cluster and the compaction metrics update takes 8700 ms, well under 5 seconds for each region server.

from hannibal.

meniku avatar meniku commented on July 28, 2024

Ranlo It seams that you are using Internet Explorer 8, which doesn't support SVG. The graphs from Hannibal are rendered with SVG. Could you try another browser?

from hannibal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.