class SqlViewMetricExporterSpi extends IgniteSpiAdapter implements MetricExporterSpi {
    /** System view name. */
    public static final String SYS_VIEW_NAME = "metrics";

    /** Metric Registry. */
    private ReadOnlyMetricManager mreg;

    /** {@inheritDoc} */
    @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public void spiStart(@Nullable String igniteInstanceName) throws IgniteSpiException {
        // No-op.
    }

    /** {@inheritDoc} */
    @Override public void spiStop() throws IgniteSpiException {
        // No-op.
    }

    /** {@inheritDoc} */
    @Override public void setMetricRegistry(ReadOnlyMetricManager mreg) {
        this.mreg = mreg;
    }

    /** {@inheritDoc} */
    @Override public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter) {
        // No-op.
    }
}

        GridKernalContext ctx = ((IgniteEx)ignite()).context();

        ctx.systemView().registerInnerCollectionView(
            SYS_VIEW_NAME,
            "Ignite metrics",
            new MetricsViewWalker(),
            mreg,
            r -> r,
            (r, m) -> new MetricsView(m)
        );

        if (log.isDebugEnabled())
            log.debug(SYS_VIEW_NAME + " SQL view for metrics created.");
    
<methods>public long clientFailureDetectionTimeout() ,public long failureDetectionTimeout() ,public void failureDetectionTimeoutEnabled(boolean) ,public boolean failureDetectionTimeoutEnabled() ,public org.apache.ignite.internal.util.IgniteExceptionRegistry getExceptionRegistry() ,public java.lang.String getName() ,public Map<java.lang.String,java.lang.Object> getNodeAttributes() throws org.apache.ignite.spi.IgniteSpiException,public org.apache.ignite.spi.IgniteSpiContext getSpiContext() ,public org.apache.ignite.Ignite ignite() ,public Collection<java.lang.Object> injectables() ,public final void onBeforeStart() ,public void onClientDisconnected(IgniteFuture<?>) ,public void onClientReconnected(boolean) ,public final void onContextDestroyed() ,public final void onContextInitialized(org.apache.ignite.spi.IgniteSpiContext) throws org.apache.ignite.spi.IgniteSpiException,public org.apache.ignite.spi.IgniteSpiAdapter setName(java.lang.String) ,public final boolean started() <variables>private long clientFailureDetectionTimeout,private long failureDetectionTimeout,private boolean failureDetectionTimeoutEnabled,protected org.apache.ignite.Ignite ignite,protected java.lang.String igniteInstanceName,private org.apache.ignite.cluster.ClusterNode locNode,protected org.apache.ignite.IgniteLogger log,private java.lang.String name,private org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener paramsLsnr,private volatile org.apache.ignite.spi.IgniteSpiContext spiCtx,private javax.management.ObjectName spiMBean,private long startTstamp,private final java.util.concurrent.atomic.AtomicBoolean startedFlag