blob: 489a0b3868564602864f6c7900a2cf847d12d849 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Monitoring Che :: Eclipse Che Documentation</title>
<link rel="canonical" href="https://www.eclipse.org/che/docs/che-7/administration-guide/monitoring-che/">
<meta name="keywords" content="administration-guide, monitoring-che">
<meta name="generator" content="Antora 2.3.3">
<link rel="stylesheet" href="../../../_/css/site.css">
<link rel="stylesheet" href="../../../_/css/extra.css">
<link rel="stylesheet" href="../../../_/font-awesome-4.7.0/css/font-awesome.min.css">
<link rel="icon" href="../../../favicon.ico" type="image/x-icon">
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-37306001-2"></script>
<script>function gtag(){dataLayer.push(arguments)};window.dataLayer=window.dataLayer||[];gtag('js',new Date());gtag('config','UA-37306001-2')</script>
</head>
<body class="article">
<header class="header" role="banner">
<nav class="navbar">
<div class="navbar-brand">
<div class="navbar-item">
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
<img src="../../../_/img/icon-eclipse-che.svg" class="navbar-logo" alt="Eclipse Che logo">
<a href="https://www.eclipse.org/che/docs">Eclipse Che Documentation</a>
</div>
</div>
<div id="topbar-nav" class="navbar-menu">
<div class="navbar-end">
<div class="navbar-item hide-for-print">
<script async src="https://cse.google.com/cse.js?cx=002898025167115630151:gnr5edrg2eo"></script>
<div class="gcse-searchbox" enableAutoComplete="true"></div>
</div>
<a class="navbar-item" href="#">Home</a>
<a class="navbar-item" href="https://che.eclipse.org/">Blog</a>
<a class="navbar-item" href="https://github.com/eclipse/che">Source Code</a>
</div>
</div>
</nav>
<div class="gcse-searchresults"></div>
</header>
<div class="body">
<div class="nav-container" data-component="che-7" data-version="master">
<aside class="nav">
<div class="panels">
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../../overview/introduction-to-eclipse-che/">Eclipse Che 7 Documentation</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../overview/introduction-to-eclipse-che/">Introduction to Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../overview/che-architecture/">Che architecture</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hosted-che/hosted-che/">Hosted Che</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">End-user Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/navigating-che/">Navigating Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/navigating-che-using-the-dashboard/">Navigating Che: dashboard</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/importing-certificates-to-browsers/">Importing certificates to browsers</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/accessing-che-from-openshift-developer-perspective/">Navigating Che from OpenShift Developer Perspective</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/che-theia-ide-basics/">Che-Theia IDE basics</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/defining-custom-commands-for-che-theia/">Defining custom commands for Che-Theia</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/version-control/">Version Control</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/che-theia-troubleshooting/">Che-Theia Troubleshooting</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/workspaces-overview/">Using developer workspaces</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-a-workspace-using-a-devfile/">Configuring a workspace using a devfile</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/making-a-workspace-portable-using-a-devfile/">Making a workspace portable using a devfile</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-and-configuring-a-new-workspace/">Creating and configuring a new workspace</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/importing-a-kubernetes-application-into-a-workspace/">Importing a Kubernetes application into a workspace</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/remotely-accessing-workspaces/">Remotely accessing workspaces</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-a-workspace-from-code-sample/">Creating a workspace from code sample</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-a-workspace-by-importing-source-code-of-a-project/">Creating a workspace by importing source code of a project</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/mounting-a-secret-as-a-file-or-an-environment-variable-into-a-workspace-container/">Mounting a secret as a file or an environment variable into a workspace container</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/customizing-developer-environments/">Customizing developer environments</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/what-is-a-che-theia-plug-in/">What is a Che-Theia plug-in</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-alternative-ides-in-che/">Using alternative IDEs in Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/adding-tools-to-che-after-creating-a-workspace/">Adding tools to Che after creating a workspace</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/configuring-oauth-authorization/">Configuring OAuth authorization</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-github-oauth/">Configuring GitHub OAuth</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-openshift-oauth/">Configuring OpenShift OAuth</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/using-artifact-repositories-in-a-restricted-environment/">Using artifact repositories in a restricted environment</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-maven-artifact-repositories/">Using Maven artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-gradle-artifact-repositories/">Using Gradle artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-python-artifact-repositories/">Using Python artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-go-artifact-repositories/">Using Go artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-nuget-artifact-repositories/">Using NuGet artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-npm-artifact-repositories/">Using npm artifact repositories</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/troubleshooting-che/">Troubleshooting Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/troubleshooting-slow-workspaces/">Troubleshooting slow workspaces</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/troubleshooting-network-problems/">Troubleshooting network problems</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/starting-a-che-workspace-in-debug-mode/">Starting a workspace in debug mode</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/restarting-a-che-workspace-in-debug-mode-after-start-failure/">Restarting a workspace in debug mode after start failure</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Installation Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../installation-guide/supported-platforms/">Supported platforms</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../installation-guide/configuring-the-che-installation/">Configuring the Che installation</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/installing-che/">Installing Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/installing-che-in-cloud/">Installing Che in cloud</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-openshift-4-using-operatorhub/">Installing Che on OpenShift 4</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-openshift-3-using-the-operator/">Installing Che on OpenShift 3</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-kubespray/">Installing Che on Kubespray</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-aws/">Installing Che on AWS</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-google-cloud-platform/">Installing Che on Google Cloud</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-microsoft-azure/">Installing Che on Microsoft Azure</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/installing-che-locally/">Installing Che locally</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-codeready-containers/">Installing Che on CodeReady Containers</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-docker-desktop/">Installing Che on Docker Desktop</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-minikube/">Installing Che on Minikube</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-minishift/">Installing Che on Minishift</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../installation-guide/installing-che-on-kind/">Installing Che on Kind</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/using-the-chectl-management-tool/">Using the chectl management tool</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/installing-che-in-a-restricted-environment/">Installing Che in restricted environment</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/advanced-configuration/">Advanced configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/advanced-configuration-options-for-the-che-server-component/">Advanced configuration options for Che server</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/configuring-namespace-strategies/">Configuring namespace strategies</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/configuring-workspace-exposure-strategies/">Configuring workspace exposure strategies</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/configuring-workspaces-nodeselector/">Configuring workspaces nodeSelector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/configuring-che-hostname/">Configuring Che hostname</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/deploying-che-with-support-for-git-repositories-with-self-signed-certificates/">Deploying Che with support for Git repositories with self-signed certificates</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/installing-che-using-storage-classes/">Installing Che using storage classes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/configuring-storage-types/">Configuring storage types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/importing-tls-certificates-to-che-server-java-truststore/">Importing TLS certificates to Che server Java truststore</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/upgrading-che/">Upgrading Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/upgrading-che-using-operatorhub/">Upgrading Che using OperatorHub</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/upgrading-che-using-the-cli-management-tool/">Upgrading Che using the CLI management tool</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../installation-guide/uninstalling-che/">Uninstalling Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/uninstalling-che-after-operatorhub-installation-using-openshift-web-console/">Using the OpenShift web console</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/uninstalling-che-after-operatorhub-installation-using-openshift-cli/">Using OpenShift CLI</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../installation-guide/uninstalling-che-after-chectl-installation/">Using chectl</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Administration Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../che-architecture-overview/">Che architecture</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../che-workspace-controller/">Che workspace controller</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../che-workspaces-architecture/">Che workspaces architecture</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../calculating-che-resource-requirements/">Calculating Che resource requirements</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../customizing-the-devfile-and-plug-in-registries/">Customizing devfile and plug-in registries</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../building-and-running-a-custom-registry-image/">Building and running a custom registry image</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../including-the-plug-in-binaries-in-the-registry-image/">Including the plug-in binaries in the registry image</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../editing-a-devfile-and-plug-in-at-runtime/">Editing a devfile and plug-in at runtime</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../using-a-visual-studio-code-extension-in-che/">Using a VS Code extension in Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../testing-a-visual-studio-code-extension-in-che/">Testing a VS Code extension in Che</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../retrieving-che-logs/">Retrieving Che logs</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-kubernetes-events/">Accessing Kubernetes events on OpenShift</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-operator-events/">Viewing the Operator events on OpenShift</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-che-server-logs/">Viewing Che server logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-external-service-logs/">Viewing external service logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-che-workspaces-logs/">Viewing Che workspaces logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../viewing-plug-in-broker-logs/">Viewing Plug-in broker logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../collecting-logs-using-chectl/">Collecting logs using chectl</a>
</li>
</ul>
</li>
<li class="nav-item is-current-page" data-depth="1">
<a class="nav-link" href="./">Monitoring Che</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tracing-che/">Tracing Che</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../managing-users/">Managing users</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-authorization/">Configuring authorization</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../removing-user-data/">Removing user data</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../securing-che/">Securing Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../authenticating-users/">Authenticating users</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../authorizing-users/">Authorizing users</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../backup-and-disaster-recovery/">Backup and disaster recovery</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../external-database-setup/">External database setup</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../persistent-volumes-backups/">Persistent Volumes backups</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../caching-images-for-faster-workspace-start/">Caching images for faster workspace start</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Contributor Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/branding-che-theia/">Branding Che-Theia</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/developing-che-theia-plug-ins/">Developing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/testing-che-theia-plug-ins/">Testing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/publishing-che-theia-plug-ins/">Publishing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/adding-support-for-a-new-language/">Adding support for a new language</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/adding-support-for-a-new-debugger/">Adding support for a new debugger</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../contributor-guide/che-extensibility-reference/">Che extensibility reference</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/che-extension-points/">Che extension points</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/che-theia-plug-in-api/">Che-Theia plug-in API</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/debug-adapter-protocol/">Debug Adapter Protocol</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/language-server-protocol/">Language Server Protocol</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Extensions</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../extensions/eclipse-che4z/">Eclipse Che4z</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../extensions/openshift-connector-overview/">OpenShift Connector</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/features-of-openshift-connector/">Features of OpenShift Connector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/installing-openshift-connector-in-che/">Installing OpenShift Connector in Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/authenticating-with-openshift-connector-from-che/">Authenticating with OpenShift Connector from Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/creating-components-with-openshift-connector-in-che/">Creating Components with OpenShift Connector in Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/connecting-source-code-from-github-to-a-openshift-component-using-openshift-connector/">Connecting source code from GitHub to a OpenShift Component</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../extensions/telemetry/">Telemetry</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../glossary/che-glossary/">Che glossary</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Eclipse Che 7 Documentation</span>
<span class="version">Stable</span>
</div>
<ul class="components">
<li class="component">
<span class="title">devfile</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../devfile/">master</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Eclipse Che 7 Documentation</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../../overview/introduction-to-eclipse-che/">Stable</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../overview/introduction-to-eclipse-che/" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../../overview/introduction-to-eclipse-che/">Eclipse Che 7 Documentation</a></li>
<li>Administration Guide</li>
<li><a href="./">Monitoring Che</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/eclipse/che-docs/edit/master/modules/administration-guide/pages/monitoring-che.adoc">Edit this Page</a></div>
</div>
<div class="content">
<article class="doc">
<h1 class="page">Monitoring Che</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>This chapter describes how to configure Che to expose metrics and how to build an example monitoring stack with external tools to process data exposed as metrics by Che.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="enabling-and-exposing-che-metrics_monitoring-che"><a class="anchor" href="#enabling-and-exposing-che-metrics_monitoring-che"></a>Enabling and exposing Che metrics</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes how to enable and expose Che metrics.</p>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>Set the <code>CHE_METRICS_ENABLED=true</code> environment variable, which will expose the <code>8087</code> port as a service on the che-master host.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>When Eclipse&#160;Che is installed from the OperatorHub, the environment variable is set automatically if the default <code>CheCluster</code> CR is used:</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-cluster-cr.png"><img src="../_images/monitoring/monitoring-che-che-cluster-cr.png" alt="monitoring che che cluster cr"></a>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">spec:
metrics:
enable: true</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="collecting-che-metrics-with-prometheus_monitoring-che"><a class="anchor" href="#collecting-che-metrics-with-prometheus_monitoring-che"></a>Collecting Che metrics with Prometheus</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes how to use the Prometheus monitoring system to collect, store and query metrics about Che.</p>
</div>
<div class="ulist">
<div class="title">Prerequisites</div>
<ul>
<li>
<p>Che is exposing metrics on port <code>8087</code>. See <a href="#enabling-and-exposing-che-metrics_monitoring-che">Enabling and exposing che metrics</a>.</p>
</li>
<li>
<p>Prometheus 2.9.1 or higher is running. The Prometheus console is running on port <code>9090</code> with a corresponding <strong>service</strong> and <strong>route</strong>. See <a href="https://prometheus.io/docs/introduction/first_steps/">First steps with Prometheus</a>.</p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Procedure</div>
<ul>
<li>
<p>Configure Prometheus to scrape metrics from the <code>8087</code> port:</p>
<div class="listingblock">
<div class="title">Prometheus configuration example</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |-
global:
scrape_interval: 5s <i class="conum" data-value="1"></i><b>(1)</b>
evaluation_interval: 5s <i class="conum" data-value="2"></i><b>(2)</b>
scrape_configs: <i class="conum" data-value="3"></i><b>(3)</b>
- job_name: 'che'
static_configs:
- targets: ['[che-host]:8087'] <i class="conum" data-value="4"></i><b>(4)</b></code></pre>
</div>
</div>
<div class="paragraph">
<p>Latest version: <a href="https://github.com/eclipse/che/blob/master/deploy/openshift/templates/monitoring/prometheus-config.yaml">example <code>prometheus-config.yaml</code> on GitHub</a>.</p>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>Rate, at which a target is scraped.</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Rate, at which recording and alerting rules are re-checked (not used in the system at the moment).</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td>Resources Prometheus monitors. In the default configuration, there is a single job called <code>che</code>, which scrapes the time series data exposed by the Che server.</td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td>Scrape metrics from the <code>8087</code> port.</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Verification steps</div>
<ul>
<li>
<p>Use the Prometheus console to query and view metrics.</p>
<div class="paragraph">
<p>Metrics are available at: <code>http://<em>&lt;che-server-url&gt;</em>:9090/metrics</code>.</p>
</div>
<div class="paragraph">
<p>For more information, see <a href="https://prometheus.io/docs/introduction/first_steps/#using-the-expression-browser">Using the expression browser</a> in the Prometheus documentation.</p>
</div>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Additional resources</div>
<ul>
<li>
<p><a href="https://prometheus.io/docs/introduction/first_steps/">First steps with Prometheus</a>.</p>
</li>
<li>
<p><a href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/">Configuring Prometheus</a>.</p>
</li>
<li>
<p><a href="https://prometheus.io/docs/prometheus/latest/querying/basics/">Querying Prometheus</a>.</p>
</li>
<li>
<p><a href="https://prometheus.io/docs/concepts/metric_types/">Prometheus metric types</a>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="viewing-che-metrics-on-grafana-dashboards_monitoring-che"><a class="anchor" href="#viewing-che-metrics-on-grafana-dashboards_monitoring-che"></a>Viewing Che metrics on Grafana dashboards</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes how to view Che metrics on Grafana dashboards.</p>
</div>
<div class="ulist">
<div class="title">Prerequisites</div>
<ul>
<li>
<p>Prometheus is collecting metrics on the Che cluster. See <a href="#collecting-che-metrics-with-prometheus_monitoring-che">Collecting Che metrics with Prometheus</a>.</p>
</li>
<li>
<p>Grafana 6.0 or above is running on port <code>3000</code> with a corresponding <strong>service</strong> and <strong>route</strong>. See <a href="https://grafana.com/docs/installation/">Installing Grafana</a>.</p>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>Deploy Che-specific dashboards on Grafana using the <code>che-monitoring.yaml</code> configuration file.</p>
<div class="paragraph">
<p>Three ConfigMaps are used to configure Grafana:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>grafana-datasources</code>&#8201;&#8212;&#8201;configuration for Grafana datasource, a Prometheus endpoint</p>
</li>
<li>
<p><code>grafana-dashboards</code>&#8201;&#8212;&#8201;configuration of Grafana dashboards and panels</p>
</li>
<li>
<p><code>grafana-dashboard-provider</code> &#8201;&#8212;&#8201;configuration of the Grafana dashboard provider API object, which tells Grafana where to look in the file system for pre-provisioned dashboards</p>
</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="ulist">
<div class="title">Verification steps</div>
<ul>
<li>
<p>Use the Grafana console to view Che metrics.</p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Additional resources</div>
<ul>
<li>
<p><a href="https://grafana.com/docs/installation/">Installing Grafana</a>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="grafana-dashboards-for-che_monitoring-che"><a class="anchor" href="#grafana-dashboards-for-che_monitoring-che"></a>Grafana dashboards for Che</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the Grafana dashboards that are displaying metrics collected from Che.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="../_images/monitoring/monitoring-che-che-server-dashboard-general-panel.png" alt="monitoring che che server dashboard general panel">
</div>
<div class="title">Figure 1. The <strong>General</strong> panel</div>
</div>
<div class="paragraph">
<p>The <strong>General</strong> panel contains basic information, such as the total number of users and workspaces in the Che database.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-panel.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-panel.png" alt="monitoring che che server dashboard workspace panel"></a>
</div>
<div class="title">Figure 2. The <strong>Workspaces</strong> panel</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Workspace start rate</strong>&#8201;&#8212;&#8201;the ratio between successful and failed started workspaces</p>
</li>
<li>
<p><strong>Workspace stop rate</strong>&#8201;&#8212;&#8201;the ratio between successful and failed stopped workspaces</p>
</li>
<li>
<p><strong>Workspace Failures</strong>&#8201;&#8212;&#8201;the number of workspace failures shown on the graph</p>
</li>
<li>
<p><strong>Starting Workspaces</strong>&#8201;&#8212;&#8201;the gauge that shows the number of currently starting workspaces</p>
</li>
<li>
<p><strong>Average Workspace Start Time</strong>&#8201;&#8212;&#8201;1-hour average of workspace starts or fails</p>
</li>
<li>
<p><strong>Average Workspace Stop Time</strong>&#8201;&#8212;&#8201;1-hour average of workspace stops</p>
</li>
<li>
<p><strong>Running Workspaces</strong>&#8201;&#8212;&#8201;the gauge that shows the number of currently running workspaces</p>
</li>
<li>
<p><strong>Stopping Workspaces</strong>&#8201;&#8212;&#8201;the gauge that shows the number of currently stopping workspaces</p>
</li>
<li>
<p><strong>Workspaces started under 60 seconds</strong>&#8201;&#8212;&#8201;the percentage of workspaces started under 60 seconds</p>
</li>
<li>
<p><strong>Number of Workspaces</strong>&#8201;&#8212;&#8201;the number of workspaces created over time</p>
</li>
<li>
<p><strong>Workspace start attempts</strong>&#8201;&#8212;&#8201;the number of attempts to start a workspace comparing regular attempts with start-debug mode</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-users-panel.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-users-panel.png" alt="monitoring che che server dashboard users panel"></a>
</div>
<div class="title">Figure 3. The <strong>Users</strong> panel</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Number of Users</strong>&#8201;&#8212;&#8201;the number of users known to Che over time</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-tomcat-panel.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-tomcat-panel.png" alt="monitoring che che server dashboard tomcat panel"></a>
</div>
<div class="title">Figure 4. The <strong>Tomcat</strong> panel</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Max number of active sessions</strong>&#8201;&#8212;&#8201;the max number of active sessions that have been active at the same time</p>
</li>
<li>
<p><strong>Number of current active sessions</strong>&#8201;&#8212;&#8201;the number of currently active sessions</p>
</li>
<li>
<p><strong>Total sessions</strong>&#8201;&#8212;&#8201;the total number of sessions</p>
</li>
<li>
<p><strong>Expired sessions</strong>&#8201;&#8212;&#8201;the number of sessions that have expired</p>
</li>
<li>
<p><strong>Rejected sessions</strong>&#8201;&#8212;&#8201;the number of sessions that were not created because the maximum number of active sessions was reached</p>
</li>
<li>
<p><strong>Longest time of an expired session</strong>&#8201;&#8212;&#8201;the longest time (in seconds) that an expired session had been alive</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-requests-panel.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-requests-panel.png" alt="monitoring che che server dashboard requests panel"></a>
</div>
<div class="title">Figure 5. The <strong>Request</strong> panel</div>
</div>
<div class="paragraph">
<p>The <strong>Requests</strong> panel displays HTTP requests in a graph that shows the average number of requests per minute.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-1.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-1.png" alt="monitoring che che server dashboard executors panel 1"></a>
</div>
<div class="title">Figure 6. The <strong>Executors</strong> panel, part 1</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Threads running</strong> - the number of threads that are not terminated aka alive. May include threads that are in a waiting or blocked state.</p>
</li>
<li>
<p><strong>Threads terminated</strong> - the number of threads that was finished its execution.</p>
</li>
<li>
<p><strong>Threads created</strong> - number of threads created by thread factory for given executor service.</p>
</li>
<li>
<p><strong>Created thread/minute</strong> - Speed of thread creating for the given executor service.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-2.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-2.png" alt="monitoring che che server dashboard executors panel 2"></a>
</div>
<div class="title">Figure 7. The <strong>Executors</strong> panel, part 2</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Executor threads active</strong> - number of threads that actively execute tasks.</p>
</li>
<li>
<p><strong>Executor pool size</strong> - number of threads that actively execute tasks.</p>
</li>
<li>
<p><strong>Queued task</strong> - the approximate number of tasks that are queued for execution</p>
</li>
<li>
<p><strong>Queued occupancy</strong> - the percent of the queue used by the tasks that are waiting for execution.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-3.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-3.png" alt="monitoring che che server dashboard executors panel 3"></a>
</div>
<div class="title">Figure 8. The <strong>Executors</strong> panel, part 3</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Rejected task</strong> - the number of tasks that were rejected from execution.</p>
</li>
<li>
<p><strong>Rejected task/minute</strong> - the speed of task rejections</p>
</li>
<li>
<p><strong>Completed tasks</strong> - the number of completed tasks</p>
</li>
<li>
<p><strong>Completed tasks/minute</strong> - the speed of task execution</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-4.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-executors-panel-4.png" alt="monitoring che che server dashboard executors panel 4"></a>
</div>
<div class="title">Figure 9. The <strong>Executors</strong> panel, part 4</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Task execution seconds max</strong> - 5min moving maximum of task execution</p>
</li>
<li>
<p><strong>Tasks execution seconds avg</strong> - 1h moving average of task execution</p>
</li>
<li>
<p><strong>Executor idle seconds max</strong> - 5min moving maximum of executor idle state.</p>
</li>
<li>
<p><strong>Executor idle seconds avg</strong> - 1h moving average of executor idle state.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-1.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-1.png" alt="monitoring che che server dashboard trace panel 1"></a>
</div>
<div class="title">Figure 10. The <strong>Traces</strong> panel, part 1</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Workspace start Max</strong> - maximum workspace start time</p>
</li>
<li>
<p><strong>Workspace start Avg</strong> - 1h moving average of the workspace start time components</p>
</li>
<li>
<p><strong>Workspace stop Max</strong> - maximum of workspace stop time</p>
</li>
<li>
<p><strong>Workspace stop Avg</strong> - 1h moving average of the workspace stop time components</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-2.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-2.png" alt="monitoring che che server dashboard trace panel 2"></a>
</div>
<div class="title">Figure 11. The <strong>Traces</strong> panel, part 2</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>OpenShiftInternalRuntime#start Max</strong> - maximum time of OpenShiftInternalRuntime#start operation</p>
</li>
<li>
<p><strong>OpenShiftInternalRuntime#start Avg</strong> - 1h moving average time of OpenShiftInternalRuntime#start operation</p>
</li>
<li>
<p><strong>Plugin Brokering Execution Max</strong> - maximum time of PluginBrokerManager#getTooling operation</p>
</li>
<li>
<p><strong>Plugin Brokering Execution Avg</strong> - 1h moving average of PluginBrokerManager#getTooling operation</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-3.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-3.png" alt="monitoring che che server dashboard trace panel 3"></a>
</div>
<div class="title">Figure 12. The <strong>Traces</strong> panel, part 3</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>OpenShiftEnvironmentProvisioner#provision Max</strong> - maximum time of OpenShiftEnvironmentProvisioner#provision operation</p>
</li>
<li>
<p><strong>OpenShiftEnvironmentProvisioner#provision Avg</strong> -1h moving average of OpenShiftEnvironmentProvisioner#provision operation</p>
</li>
<li>
<p><strong>Plugin Brokering Execution Max</strong> - maximum time of PluginBrokerManager#getTooling components execution time</p>
</li>
<li>
<p><strong>Plugin Brokering Execution Avg</strong> - 1h moving average of time of PluginBrokerManager#getTooling components execution time</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-4.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-trace-panel-4.png" alt="monitoring che che server dashboard trace panel 4"></a>
</div>
<div class="title">Figure 13. The <strong>Traces</strong> panel, part 4</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>WaitMachinesStart Max</strong> - maximum time of WaitMachinesStart operations</p>
</li>
<li>
<p><strong>WaitMachinesStart Avg</strong> - 1h moving average time of WaitMachinesStart operations</p>
</li>
<li>
<p><strong>OpenShiftInternalRuntime#startMachines Max</strong> - maximum time of OpenShiftInternalRuntime#startMachines operations</p>
</li>
<li>
<p><strong>OpenShiftInternalRuntime#startMachines Avg</strong> - 1h moving average of the time of OpenShiftInternalRuntime#startMachines operations</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-detailed-panel.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-detailed-panel.png" alt="monitoring che che server dashboard workspace detailed panel"></a>
</div>
<div class="title">Figure 14. The <strong>Workspace detailed</strong> panel, part 1</div>
</div>
<div class="paragraph">
<p>The <strong>Workspace Detailed</strong> panel contains heat maps, which illustrate the average time of workspace starts or fails. The row shows some period of time.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-detailed-panel-2.png"><img src="../_images/monitoring/monitoring-che-che-server-dashboard-workspace-detailed-panel-2.png" alt="monitoring che che server dashboard workspace detailed panel 2"></a>
</div>
<div class="title">Figure 15. The <strong>Workspace detailed</strong> panel, part 2</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Messages sent to runtime log</strong> - Number of messages sent to the workspace startup log.</p>
</li>
<li>
<p><strong>Bytes sent to runtime log</strong> - Number of bytes of the messages sent to the workspace startup log.</p>
</li>
<li>
<p><strong>Current Log Watchers</strong> - Number of currently watched containers logs</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_che_server_jvm_dashboard"><a class="anchor" href="#_che_server_jvm_dashboard"></a>Che server JVM dashboard</h3>
<div class="paragraph">
<p>Use case: JVM metrics of the Che server, such as JVM memory or classloading.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard.png" alt="monitoring che che server jvm dashboard"></a>
</div>
<div class="title">Figure 16. Che server JVM dashboard</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-quick-facts.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-quick-facts.png" alt="monitoring che che server jvm dashboard quick facts"></a>
</div>
<div class="title">Figure 17. Quick Facts</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory.png" alt="monitoring che che server jvm dashboard jvm memory"></a>
</div>
<div class="title">Figure 18. JVM Memory</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-misc.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-misc.png" alt="monitoring che che server jvm dashboard jvm misc"></a>
</div>
<div class="title">Figure 19. JVM Misc</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory-pools-heap.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory-pools-heap.png" alt="monitoring che che server jvm dashboard jvm memory pools heap"></a>
</div>
<div class="title">Figure 20. JVM Memory Pools (heap)</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory-pools-non-heap.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-jvm-memory-pools-non-heap.png" alt="monitoring che che server jvm dashboard jvm memory pools non heap"></a>
</div>
<div class="title">Figure 21. JVM Memory Pools (Non-Heap)</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-garbage-collection.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-garbage-collection.png" alt="monitoring che che server jvm dashboard garbage collection"></a>
</div>
<div class="title">Figure 22. Garbage Collection</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-classloading.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-classloading.png" alt="monitoring che che server jvm dashboard classloading"></a>
</div>
<div class="title">Figure 23. Classloading</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-buffer-pools.png"><img src="../_images/monitoring/monitoring-che-che-server-jvm-dashboard-buffer-pools.png" alt="monitoring che che server jvm dashboard buffer pools"></a>
</div>
<div class="title">Figure 24. Buffer Pools</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="developing-grafana-dashboards_monitoring-che"><a class="anchor" href="#developing-grafana-dashboards_monitoring-che"></a>Developing Grafana dashboards</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Grafana offers the possibility to add custom panels.</p>
</div>
<div class="paragraph">
<div class="title">Procedure</div>
<p>To add a custom panel, use the <strong>New dashboard</strong> view.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>In the first section, define <strong>Queries to</strong>. Use the <em>Prometheus Query Language</em> to construct a specific metric, as well as to modify it with various aggregation operators.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-new-grafana-dashboard-queries.png"><img src="../_images/monitoring/monitoring-che-new-grafana-dashboard-queries.png" alt="monitoring che new grafana dashboard queries"></a>
</div>
<div class="title">Figure 25. New Grafana dashboard: Queries to</div>
</div>
</li>
<li>
<p>In the <strong>Visualisation</strong> section, choose a metric to be shown in the following visual in the form of a graph, gauge, heatmap, or others.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/monitoring/monitoring-che-new-grafana-dashboard-visualization.png"><img src="../_images/monitoring/monitoring-che-new-grafana-dashboard-visualization.png" alt="monitoring che new grafana dashboard visualization"></a>
</div>
<div class="title">Figure 26. New Grafana dashboard: Visualization</div>
</div>
</li>
<li>
<p>Save changes to the dashboard by clicking the <b class="button">Save</b> button, and copy and paste the JSON code to the deployment.</p>
</li>
<li>
<p>Load changes in the configuration of a running Grafana deployment. First remove the deployment:</p>
<div class="listingblock">
<div class="content">
<pre>$ oc process -f che-monitoring.yaml | oc delete -f -</pre>
</div>
</div>
<div class="paragraph">
<p>Then redeploy your Grafana with the new configuration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ oc process -f che-monitoring.yaml | oc apply -f - | oc rollout latest grafana</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="extending-che-monitoring-metrics_monitoring-che"><a class="anchor" href="#extending-che-monitoring-metrics_monitoring-che"></a>Extending Che monitoring metrics</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes how to create a metric or a group of metrics to extend the monitoring metrics that Che is exposing.</p>
</div>
<div class="paragraph">
<p>Che has two major modules metrics:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>che-core-metrics-core</code>&#8201;&#8212;&#8201;contains core metrics module</p>
</li>
<li>
<p><code>che-core-api-metrics</code>&#8201;&#8212;&#8201;contains metrics that are dependent on core Che components, such as workspace or user managers</p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Procedure</div>
<ul>
<li>
<p>Create a class that extends the <code>MeterBinder</code> class. This allows to register the created metric in the overridden <code>bindTo(MeterRegistry registry)</code> method.</p>
<div class="paragraph">
<p>The following is an example of a metric that has a function that supplies the value for it:</p>
</div>
<div class="listingblock">
<div class="title">Example metric</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class UserMeterBinder implements MeterBinder {
private final UserManager userManager;
@Inject
public UserMeterBinder(UserManager userManager) {
this.userManager = userManager;
}
@Override
public void bindTo(MeterRegistry registry) {
Gauge.builder("che.user.total", this::count)
.description("Total amount of users")
.register(registry);
}
private double count() {
try {
return userManager.getTotalCount();
} catch (ServerException e) {
return Double.NaN;
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Alternatively, the metric can be stored with a reference and updated manually in other place in the code.</p>
</div>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Additional resources</div>
<ul>
<li>
<p><a href="https://prometheus.io/docs/practices/naming/">Metric and label naming for Prometheus</a></p>
</li>
<li>
<p><a href="https://prometheus.io/docs/concepts/metric_types/">Metric types for Prometheus</a></p>
</li>
</ul>
</div>
</div>
</div>
</article>
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
</div>
</main>
</div>
<footer class="footer">
<div><a href="https://www.eclipse.org" target="_blank">Eclipse Foundation</a> |
<a href="https://www.eclipse.org/legal/privacy.php" target="_blank">Privacy Policy</a> |
<a href="https://www.eclipse.org/legal/termsofuse.php" target="_blank">Terms of Use</a> |
<a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">Eclipse Public License</a> |
<a href="https://www.eclipse.org/legal" target="_blank">Legal Resources</a></div>
</footer>
<script src="../../../_/js/site.js"></script>
<script async src="../../../_/js/vendor/highlight.js"></script>
</body>
</html>