public MXBeanPoller()

in metrics-core/src/main/java/software/amazon/swage/metrics/jmx/MXBeanPoller.java [116:146]


    public MXBeanPoller(final ScheduledExecutorService executor,
                        final MetricRecorder metricRecorder,
                        final int pollingIntervalSeconds,
                        final List<Sensor> sensors)
    {
        this.executor = executor;
        this.metricRecorder = metricRecorder;
        this.sensors = Collections.unmodifiableList(new ArrayList<>(sensors));

        // Name of the JVM, as stand-in for PID
        final String runtimeName = ManagementFactory.getRuntimeMXBean().getName();

        // Set up the context to use for the recorded metric events.
        // Each sensor may add additional context
        TypedMap contextData = ContextData.withId(runtimeName)
                                          .add(StandardContext.OPERATION, "JMX")
                                          .build();

        for (Sensor s : sensors) {
            contextData = s.addContext(contextData);
        }
        this.updaterContext = contextData;
        // Context set

        this.running.set(true);
        this.executor.scheduleAtFixedRate(
                () -> runSensors(),
                0,
                pollingIntervalSeconds,
                TimeUnit.SECONDS);
    }