Details

    • Type: New Feature
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.3.4
    • Component/s: jackrabbit-core
    • Labels:
      None

      Description

      There has been a slight interest in the past for adding JMX support.
      This would be the first stab at it. It is a Top 15 slow query log. (the 15 part is configurable)

      It is not enabled by default, so just being there should not affect the overall performance too much. You can enable it and play a little, tell me what you think.
      I've also added a test case that does a duration comparison with and without the logger.

      The most important part of this issue is that it should open the way for some proper monitoring tools support around queries, caches, anything/everything Jackrabbit.

      As usual, please let me know what you guys think

      1. JCR-2936-part2.patch
        1 kB
        Alex Deparvu
      2. JCR-2936.patch
        32 kB
        Alex Deparvu

        Activity

        Hide
        stillalex Alex Deparvu added a comment -

        Marking as resolved. Further dev should follow on its own issue. This one is kinda fat already.

        Show
        stillalex Alex Deparvu added a comment - Marking as resolved. Further dev should follow on its own issue. This one is kinda fat already.
        Hide
        stillalex Alex Deparvu added a comment -

        I've created JCR-3117 to track the work on PM stats. The patch is for trunk.

        FYI work on the dedicated branch (jackrabbit/branches/JCR-2936) has been merged back to trunk due to having to sync all the time, which was rather time consuming.

        Show
        stillalex Alex Deparvu added a comment - I've created JCR-3117 to track the work on PM stats. The patch is for trunk. FYI work on the dedicated branch (jackrabbit/branches/ JCR-2936 ) has been merged back to trunk due to having to sync all the time, which was rather time consuming.
        Hide
        jukkaz Jukka Zitting added a comment -

        In revision 1160161 I created a branch (jackrabbit/branches/JCR-2936) for this and the related JCR-3040 work.

        Show
        jukkaz Jukka Zitting added a comment - In revision 1160161 I created a branch (jackrabbit/branches/ JCR-2936 ) for this and the related JCR-3040 work.
        Hide
        stefan@jira Stefan Guggisberg added a comment -

        > It is not enabled by default, so just being there should not affect the overall performance too much.

        what do you mean by "not too much"? can you provide performance figures?

        Show
        stefan@jira Stefan Guggisberg added a comment - > It is not enabled by default, so just being there should not affect the overall performance too much. what do you mean by "not too much"? can you provide performance figures?
        Hide
        stillalex Alex Deparvu added a comment -

        apparently when running multiple tests on the repository, the jmx bean registration fails in the initialization part.

        it may have something to do with the way the test repo is setup, but either way, it fails constantly

        I'm attaching a patch that fixes this problem.

        For the design improvements, I'm still planning it out

        Show
        stillalex Alex Deparvu added a comment - apparently when running multiple tests on the repository, the jmx bean registration fails in the initialization part. it may have something to do with the way the test repo is setup, but either way, it fails constantly I'm attaching a patch that fixes this problem. For the design improvements, I'm still planning it out
        Hide
        jukkaz Jukka Zitting added a comment -

        I committed the patch in revision 1089061. Good work!

        As you mention, the solution still need some work, so I'm leaving this issue open.

        The most notable design issue I have with the current solution is that the JMX code now spills over to other parts of the codebase. A cleaner approach would be to statistics collectors right there with the query manager and other similar places with no JMX dependencies, and have the JMX code simply access that information through the RepositoryContext. Such an approach makes the collected statistics and other runtime information easier to use also for non-JMX purposes.

        Show
        jukkaz Jukka Zitting added a comment - I committed the patch in revision 1089061. Good work! As you mention, the solution still need some work, so I'm leaving this issue open. The most notable design issue I have with the current solution is that the JMX code now spills over to other parts of the codebase. A cleaner approach would be to statistics collectors right there with the query manager and other similar places with no JMX dependencies, and have the JMX code simply access that information through the RepositoryContext. Such an approach makes the collected statistics and other runtime information easier to use also for non-JMX purposes.
        Hide
        stillalex Alex Deparvu added a comment -

        Attached initial jmx support patch.

        Show
        stillalex Alex Deparvu added a comment - Attached initial jmx support patch.

          People

          • Assignee:
            Unassigned
            Reporter:
            stillalex Alex Deparvu
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development