Usage

But how to use externally registered counters. For example Crawler Controller Agent register globally "Total" parameter. Each crawler should able to use it.

Mainly crawler should have access to CrawlerControllerAgent.
Its possible to pass CrawlerControllerAgent directly to crawler. Also if CrawlerControllerAgent was registered as service (its preferable way) its possible to find it by OSGi services registry. But also its possible to generate unique ID for crawler agent during registration and use it later.

Category Tree Construction / Registration

Its suggested to construct categories tree during registration

// manual categories ancestors iteration
ManagementCategory category = ManagementRegistration.getCategory("Crawler").getCategory("Administration");// first way to register
category.register(agent);// the second way to register
ManagementRegistration.register(category, agent);// the third way to register
ManagementRegistration.register("Crawler/Administration", agent);// unregister
ManagementRegistration.unregister(agent);// or
category.unregister(agent);

Also its suggested to assume that creation/removing of categories is done automatically by ManagementRegistration and ManagementCategory classes.