Java源码示例:org.weakref.jmx.MBeanExporter
示例1
synchronized void export(MBeanExporter exporter)
{
checkState(mbeanExports.isEmpty(), "MBeans already exported");
for (Map.Entry<Class<?>, OptimizerStats> entry : stats.entrySet()) {
verify(!entry.getKey().getSimpleName().isEmpty());
try {
mbeanExports.add(exporter.exportWithGeneratedName(entry.getValue(), PlanOptimizer.class, ImmutableMap.<String, String>builder()
.put("name", PlanOptimizer.class.getSimpleName())
.put("optimizer", entry.getKey().getSimpleName())
.build()));
}
catch (RuntimeException e) {
throw new RuntimeException(format("Failed to export MBean with name '%s'", getName(entry.getKey())), e);
}
}
}
示例2
synchronized void export(MBeanExporter exporter)
{
checkState(mbeanExports.isEmpty(), "MBeans already exported");
for (Map.Entry<Class<?>, RuleStats> entry : stats.entrySet()) {
verify(!entry.getKey().getSimpleName().isEmpty());
try {
mbeanExports.add(exporter.exportWithGeneratedName(entry.getValue(), IterativeOptimizer.class, ImmutableMap.<String, String>builder()
.put("name", IterativeOptimizer.class.getSimpleName())
.put("rule", entry.getKey().getSimpleName())
.build()));
}
catch (RuntimeException e) {
throw new RuntimeException(format("Failed to export MBean with for rule '%s'", entry.getKey().getSimpleName()), e);
}
}
}
示例3
public List<PlanOptimizer> getPlanOptimizers(boolean forceSingleNode)
{
return new PlanOptimizers(
metadata,
new TypeAnalyzer(sqlParser, metadata),
taskManagerConfig,
forceSingleNode,
new MBeanExporter(new TestingMBeanServer()),
splitManager,
pageSourceManager,
statsCalculator,
costCalculator,
estimatedExchangesCostCalculator,
new CostComparator(featuresConfig),
taskCountEstimator).get();
}
示例4
@Provides
@Singleton
private static Optional<BackupStore> createBackupStore(
@Nullable BackupStore store,
LifeCycleManager lifeCycleManager,
MBeanExporter exporter,
RaptorConnectorId connectorId,
BackupConfig config)
{
if (store == null) {
return Optional.empty();
}
BackupStore proxy = new TimeoutBackupStore(
store,
connectorId.toString(),
config.getTimeout(),
config.getTimeoutThreads());
lifeCycleManager.addInstance(proxy);
BackupStore managed = new ManagedBackupStore(proxy);
exporter.exportWithGeneratedName(managed, BackupStore.class, connectorId.toString());
return Optional.of(managed);
}
示例5
public static void setLocalBookKeeper(BookKeeperService.Iface bookKeeper, String statsMbeanSuffix)
{
bookKeeperFactory = new BookKeeperFactory(bookKeeper);
if (!Strings.isNullOrEmpty(statsMbeanSuffix)) {
String mBeanName = statsMBeanBaseName + "," + statsMbeanSuffix;
MBeanExporter exporter = new MBeanExporter(ManagementFactory.getPlatformMBeanServer());
try {
if (ManagementFactory.getPlatformMBeanServer().isRegistered(new ObjectName(statsMBeanBaseName))) {
exporter.unexport(statsMBeanBaseName);
}
if (!ManagementFactory.getPlatformMBeanServer().isRegistered(new ObjectName(mBeanName))) {
exporter.export(mBeanName, statsMBean);
}
}
catch (MalformedObjectNameException e) {
log.error("Could not export stats mbean", e);
}
}
}
示例6
private QueryExplainer getQueryExplainer()
{
Metadata metadata = queryRunner.getMetadata();
FeaturesConfig featuresConfig = new FeaturesConfig().setOptimizeHashGeneration(true);
boolean forceSingleNode = queryRunner.getNodeCount() == 1;
TaskCountEstimator taskCountEstimator = new TaskCountEstimator(queryRunner::getNodeCount);
CostCalculator costCalculator = new CostCalculatorUsingExchanges(taskCountEstimator);
List<PlanOptimizer> optimizers = new PlanOptimizers(
metadata,
new TypeAnalyzer(sqlParser, metadata),
new TaskManagerConfig(),
forceSingleNode,
new MBeanExporter(new TestingMBeanServer()),
queryRunner.getSplitManager(),
queryRunner.getPageSourceManager(),
queryRunner.getStatsCalculator(),
costCalculator,
new CostCalculatorWithEstimatedExchanges(costCalculator, taskCountEstimator),
new CostComparator(featuresConfig),
taskCountEstimator).get();
return new QueryExplainer(
optimizers,
new PlanFragmenter(metadata, queryRunner.getNodePartitioningManager(), new QueryManagerConfig()),
metadata,
queryRunner.getAccessControl(),
sqlParser,
queryRunner.getStatsCalculator(),
costCalculator,
ImmutableMap.of());
}
示例7
@Inject
public ClusterMemoryManager(
@ForMemoryManager HttpClient httpClient,
InternalNodeManager nodeManager,
LocationFactory locationFactory,
MBeanExporter exporter,
JsonCodec<MemoryInfo> memoryInfoCodec,
JsonCodec<MemoryPoolAssignmentsRequest> assignmentsRequestJsonCodec,
QueryIdGenerator queryIdGenerator,
LowMemoryKiller lowMemoryKiller,
ServerConfig serverConfig,
MemoryManagerConfig config,
NodeMemoryConfig nodeMemoryConfig,
NodeSchedulerConfig schedulerConfig)
{
requireNonNull(config, "config is null");
requireNonNull(nodeMemoryConfig, "nodeMemoryConfig is null");
requireNonNull(serverConfig, "serverConfig is null");
requireNonNull(schedulerConfig, "schedulerConfig is null");
checkState(serverConfig.isCoordinator(), "ClusterMemoryManager must not be bound on worker");
this.nodeManager = requireNonNull(nodeManager, "nodeManager is null");
this.locationFactory = requireNonNull(locationFactory, "locationFactory is null");
this.httpClient = requireNonNull(httpClient, "httpClient is null");
this.exporter = requireNonNull(exporter, "exporter is null");
this.memoryInfoCodec = requireNonNull(memoryInfoCodec, "memoryInfoCodec is null");
this.assignmentsRequestJsonCodec = requireNonNull(assignmentsRequestJsonCodec, "assignmentsRequestJsonCodec is null");
this.lowMemoryKiller = requireNonNull(lowMemoryKiller, "lowMemoryKiller is null");
this.maxQueryMemory = config.getMaxQueryMemory();
this.maxQueryTotalMemory = config.getMaxQueryTotalMemory();
this.coordinatorId = queryIdGenerator.getCoordinatorId();
this.killOnOutOfMemoryDelay = config.getKillOnOutOfMemoryDelay();
this.isWorkScheduledOnCoordinator = schedulerConfig.isIncludeCoordinator();
verify(maxQueryMemory.toBytes() <= maxQueryTotalMemory.toBytes(),
"maxQueryMemory cannot be greater than maxQueryTotalMemory");
this.pools = createClusterMemoryPools(!nodeMemoryConfig.isReservedPoolDisabled());
}
示例8
@Inject
public LocalMemoryManagerExporter(LocalMemoryManager memoryManager, MBeanExporter exporter)
{
this.exporter = requireNonNull(exporter, "exporter is null");
for (MemoryPool pool : memoryManager.getPools()) {
addPool(pool);
}
}
示例9
@Inject
public InternalResourceGroupManager(LegacyResourceGroupConfigurationManager legacyManager, ClusterMemoryPoolManager memoryPoolManager, NodeInfo nodeInfo, MBeanExporter exporter)
{
this.exporter = requireNonNull(exporter, "exporter is null");
this.configurationManagerContext = new ResourceGroupConfigurationManagerContextInstance(memoryPoolManager, nodeInfo.getEnvironment());
this.legacyManager = requireNonNull(legacyManager, "legacyManager is null");
this.configurationManager = new AtomicReference<>(cast(legacyManager));
}
示例10
@Inject
public NodeSchedulerExporter(TopologyAwareNodeSelectorFactory nodeSelectorFactory, MBeanExporter exporter)
{
requireNonNull(nodeSelectorFactory, "nodeSelectorFactory is null");
requireNonNull(exporter, "exporter is null");
for (Map.Entry<String, CounterStat> entry : nodeSelectorFactory.getPlacementCountersByName().entrySet()) {
try {
mbeanExports.add(exporter.exportWithGeneratedName(entry.getValue(), NodeScheduler.class, ImmutableMap.of("segment", entry.getKey())));
}
catch (JmxException e) {
// ignored
}
}
}
示例11
synchronized void unexport(MBeanExporter exporter)
{
for (MBeanExport mbeanExport : mbeanExports) {
mbeanExport.unexport();
}
mbeanExports.clear();
}
示例12
@Inject
public PlanOptimizers(
Metadata metadata,
TypeAnalyzer typeAnalyzer,
TaskManagerConfig taskManagerConfig,
MBeanExporter exporter,
SplitManager splitManager,
PageSourceManager pageSourceManager,
StatsCalculator statsCalculator,
CostCalculator costCalculator,
@EstimatedExchanges CostCalculator estimatedExchangesCostCalculator,
CostComparator costComparator,
TaskCountEstimator taskCountEstimator)
{
this(metadata,
typeAnalyzer,
taskManagerConfig,
false,
exporter,
splitManager,
pageSourceManager,
statsCalculator,
costCalculator,
estimatedExchangesCostCalculator,
costComparator,
taskCountEstimator);
}
示例13
synchronized void unexport(MBeanExporter exporter)
{
for (MBeanExport mbeanExport : mbeanExports) {
mbeanExport.unexport();
}
mbeanExports.clear();
}
示例14
@Override
public void configure(Binder binder)
{
binder.bind(DriftServer.class).in(SINGLETON);
newSetBinder(binder, DriftService.class);
newSetBinder(binder, MethodInvocationFilter.class);
newOptionalBinder(binder, MBeanExporter.class);
newOptionalBinder(binder, MethodInvocationStatsFactory.class)
.setDefault()
.toProvider(DefaultMethodInvocationStatsFactoryProvider.class)
.in(SINGLETON);
}
示例15
@Override
public void configure(Binder binder)
{
newSetBinder(binder, ExceptionClassifier.class);
newOptionalBinder(binder, MBeanExporter.class);
newOptionalBinder(binder, MethodInvocationStatsFactory.class)
.setDefault()
.toProvider(DefaultMethodInvocationStatsFactoryProvider.class)
.in(Scopes.SINGLETON);
}
示例16
@Inject
public DefaultMethodInvocationStatsFactoryProvider(Optional<MBeanExporter> mbeanExporter)
{
this.mbeanExporter = mbeanExporter;
}
示例17
@Inject
public JmxMethodInvocationStatsFactory(MBeanExporter exporter)
{
this.exporter = requireNonNull(exporter, "exporter is null");
}
示例18
@Inject
public DefaultMethodInvocationStatsFactoryProvider(Optional<MBeanExporter> mbeanExporter)
{
this.mbeanExporter = mbeanExporter;
}
示例19
@Inject
public JmxMethodInvocationStatsFactory(MBeanExporter exporter)
{
this.exporter = requireNonNull(exporter, "exporter is null");
}