<!--
 ▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
 ▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
 ▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
  ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
  ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
      ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html>
<html lang="en">
<head>

    <link rel="canonical" href="https://ignite.apache.org/features/datavisualization.html"/>
    <!--#include virtual="/includes/scriptshead.html" -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Management and Monitoring - Apache Ignite</title>
    <meta name="description" content="Multiple tools are available to manage, monitor and develop on Apache Ignite.
    Free tools specifically designed for Ignite are listed here. Learn more.">
    <!--#include virtual="/includes/styles.html" -->


</head>
<body>

<!--#include virtual="/includes/header.html" -->
<article>
    <header>
        <div class="container">
            <h1>Apache Ignite <strong>Management and Monitoring</strong></h1>
        </div>
    </header>
    <div class="container">
        <p>
            Apache Ignite<sup>®</sup> exposes metrics in JMX and OpenCensus formats making it possible to monitor the
            clusters with a broad range of tools, including Zabbix, Prometheus, Grafana, and AppDynamics.
        </p>
        <p>

            In addition, below is a list of tools developed specifically for Ignite production maintenance and
            development.
            In addition to the monitoring capabilities, those tools let us manage Ignite clusters and execute
            Ignite-specific operations straight from the UI.
        </p>


        <h2>
            <a href="https://console.gridgain.com/" target="_blank" rel="noopener">
                <img style="margin-bottom:10px;" height="35" width="40" src="/images/logo_ignite_32_32.png"
                     alt="Apache Ignite logo"/>
            </a>Ignite Web Console
        </h2>
        <a href="/images/webconsole-sql.png"><img class="diagram-right img-responsive" src="/images/webconsole-sql.png"
                                                  alt="Web Console SQL screenshot"></a>
        <p>Ignite Web Console is an interactive web-based management tool that lets you:</p>
        <ul class="page-list">
            <li>Create and download various configurations to use for your Apache Ignite cluster.</li>
            <li>Import database schemas from virtually any RDBMS.</li>
            <li>Execute SQL queries over distributed data sets and view the execution plans.</li>
        </ul>

        <p>Refer to the <a href="https://apacheignite-tools.readme.io/docs/ignite-web-console" target="_blank"
                           rel="noopener">Ignite Web Console</a> documentation for more details.</p>


        <p style="clear:both;">&nbsp;</p>

        <h2 style="padding-bottom: 5px;">
            <a href="https://control.gridgain.com/" target="_blank" rel="noopener">
                <img style="margin-bottom:10px;" height="35" ; width="40" src="/images/gg-iso-70x80.png"
                     alt="GridGain logo"/>
            </a>GridGain Control Center
        </h2>
        <a href="/images/dashboardcomp_0.png"><img class="img-responsive diagram-right"
                                                   src="/images/dashboardcomp_0.png"
                                                   alt="GridGain Control Center Dashboard diagram"/></a>
        <p><a href="https://control.gridgain.com/welcome" target="_blank" rel="noopener">GridGain Control Center</a>
            is an online management, monitoring and development tool for Apache Ignite that allows you to:</p>
        <ul class="page-list">
            <li>Maintain and monitor Ignite nodes and caches with a customizable, drag-and-drop interface</li>
            <li>View heap, CPU, and other useful node and cache metrics</li>
            <li>Import database schemas from virtually any RDBMS</li>
            <li>Execute SQL queries over distributed data sets and simplify query development with a comprehensive
                editor
            </li>
            <li>Perform root cause analysis with visual debugging of API calls</li>
            <li>Define production alerts based on any of 200+ OpenCensus-based metrics</li>
        </ul>

    </div>
</article>


<!--#include virtual="/includes/footer.html" -->

<!--#include virtual="/includes/scripts.html" -->
</body>
</html>
