Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Minor 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 Parvulescu
      2. JCR-2936.patch
        32 kB
        Alex Parvulescu
      There are no Sub-Tasks for this issue.

        Activity

        Hide
        Alex Parvulescu added a comment -

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

        Show
        Alex Parvulescu added a comment - Marking as resolved. Further dev should follow on its own issue. This one is kinda fat already.
        Hide
        Alex Parvulescu 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
        Alex Parvulescu 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
        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
        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 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 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
        Alex Parvulescu 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
        Alex Parvulescu 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
        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
        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
        Alex Parvulescu added a comment -

        Attached initial jmx support patch.

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

          People

          • Assignee:
            Unassigned
            Reporter:
            Alex Parvulescu
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development