{"id":45973,"date":"2014-12-24T18:35:40","date_gmt":"2014-12-24T15:35:40","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=45973"},"modified":"2019-08-13T15:28:41","modified_gmt":"2019-08-13T12:28:41","slug":"cloud-foundry-monitoring-with-admin-ui-technical-overview","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/","title":{"rendered":"Cloud Foundry Monitoring with Admin UI: Technical Overview"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Technology_basics_Ruby_the_Cuba_framework_Redis\" >Technology basics (Ruby, the Cuba framework, Redis)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Components_and_layers\" >Components and layers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Functionality\" >Functionality<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Integration_with_Cloud_Foundry_APIs\" >Integration with Cloud Foundry APIs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Performance_scaling\" >Performance \/ scaling<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Error_handling_logging_and_debugging\" >Error handling,\u00a0logging, and debugging<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Localization_Chinese_and_Russian\" >Localization (Chinese and Russian)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Issues_bugs\" >Issues \/ bugs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Technology_basics_Ruby_the_Cuba_framework_Redis\"><\/span>Technology basics (Ruby, the Cuba framework, Redis)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"http:\/\/https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\" target=\"_blank\" rel=\"noopener noreferrer\">Admin UI<\/a> is a web service that allows to gather metrics from the Cloud Foundry components. The metrics of Admin UI are based on data taken from the UAA, Cloud Controller databases, and NATS. Admin UI checks the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">\/varz<\/code> and <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">\/healthz<\/code> endpoints of the Cloud Foundry components. You can find more information about these endpoints in the <a href=\"https:\/\/docs.cloudfoundry.org\/concepts\/architecture\/router.html#instrumentation\" target=\"_blank\" rel=\"noopener noreferrer\">official documentation<\/a>. You can read about the Admin UI dependencies in <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/master\/Gemfile\" target=\"_blank\" rel=\"noopener noreferrer\">this GitHub repo<\/a>.<\/p>\n<p>Admin UI is a Sinatra-based application that uses SQLite3 to cache data and store stats. To support multiple possible UAA and CC databases (currently, Cloud Foundry supports PostgreSQL and MySQL), Admin UI uses the <a href=\"https:\/\/github.com\/jeremyevans\/sequel\" target=\"_blank\" rel=\"noopener noreferrer\">Sequel<\/a> gem. That\u2019s why it requires <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui#ubuntu-prerequisite-libraries\" target=\"_blank\" rel=\"noopener noreferrer\">some additional packets<\/a> to be installed, including the PostgreSQL and MySQL client libraries.<\/p>\n<p>With <a href=\"https:\/\/github.com\/Altoros\/admin-ui-boshrelease\" target=\"_blank\" rel=\"noopener noreferrer\">Admin UI BOSH release<\/a>, you can expose Admin UI through the CF Router, using <a href=\"https:\/\/github.com\/cloudfoundry-community\/admin-ui-boshrelease\/blob\/88f8a8a7f10dd59caf4d7ce10d741aa6623726db\/jobs\/admin_ui\/templates\/cf-registrar.config.yml.erb\" target=\"_blank\" rel=\"noopener noreferrer\">cf-registrar<\/a>. Still, it is not <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/issues\/123\" target=\"_blank\" rel=\"noopener noreferrer\">the best way to do it<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Components_and_layers\"><\/span>Components and layers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Admin UI is a JavaScript-based Web application: user\u2019s browser gets a static file (<a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/master\/lib\/admin\/public\/application.html\" target=\"_blank\" rel=\"noopener noreferrer\">application.html<\/a>) that makes multiple AJAX requests to the server side (a single AJAX request for each tab). These AJAX requests are sent only once, so to update information, you need to refresh a browser page. Data is mostly transferred in the JSON format.<\/p>\n<p>UAA is used as an authentication tool in the latest version of Admin UI. When a user <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/b88cb1c1d1a8c51cc78a0417071e68cacc899a31\/lib\/admin\/login.rb\" target=\"_blank\" rel=\"noopener noreferrer\">opens the application<\/a> for the first time, he\/she is redirected to the UAA endpoint with a login form. Then, a user is redirected back to Admin UI with username and access scope data in parameters. A username and a scope are stored to a session and are further utilized to identify if a user has access to specific tabs.<\/p>\n<p>The authentication process requires a special registration of Admin UI within UAA. In order to add Admin UI as the UAA client, you can use a <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/534fd698ff504c286531022110b6205cf91cd029\/README.md#running-with-bosh-lite-cloudfoundry\" target=\"_blank\" rel=\"noopener noreferrer\">script<\/a> from Admin UI that provides access to UAA via the <a href=\"https:\/\/rubygems.org\/gems\/cf-uaac\" target=\"_blank\" rel=\"noopener noreferrer\">cf-uaac<\/a> gem. If you install Admin UI with  the <a href=\"https:\/\/github.com\/cloudfoundry-community\/admin-ui-boshrelease\" target=\"_blank\" rel=\"noopener noreferrer\">BOSH v4<\/a> release, you can run the <a href=\"https:\/\/github.com\/cloudfoundry-community\/admin-ui-boshrelease#errands\" target=\"_blank\" rel=\"noopener noreferrer\">errand jobs<\/a> that will do it for you.<\/p>\n<p>The Admin UI server has a special thread that updates the Cloud Foundry components data in the background. It has a <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/534fd698ff504c286531022110b6205cf91cd029\/lib\/admin\/stats.rb#L40\" target=\"_blank\" rel=\"noopener noreferrer\">low priority<\/a> and doesn\u2019t hamper the server\u2019s work. This background thread <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/534fd698ff504c286531022110b6205cf91cd029\/lib\/admin\/stats.rb#L64-L75\" target=\"_blank\" rel=\"noopener noreferrer\">gathers data<\/a> from the Cloud Foundry components and <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/master\/lib\/admin\/db\/stats_dbstore.rb\" target=\"_blank\" rel=\"noopener noreferrer\">stores<\/a> it into <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/master\/lib\/admin\/dbstore.rb\" target=\"_blank\" rel=\"noopener noreferrer\">SQLite3<\/a>. Time period required for the thread to gather data is set in configurations. After data is saved to <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/blob\/master\/lib\/admin\/db\/stats_dbstore.rb\" target=\"_blank\" rel=\"noopener noreferrer\">SQLite3<\/a>, it is accessible by the main thread and is used in responses of a client. The server allows for performing some management tasks for the Cloud Foundry deployment, too. Since the Admin UI client access scope is used to get data or perform any management task, you will not be able to perform actions allowed to your user, but restricted to Admin UI.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/08\/14_12_24_admin_ui_techncial_overview.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/08\/14_12_24_admin_ui_techncial_overview.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-45975\" \/><\/a><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Functionality\"><\/span>Functionality<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Admin UI provides access to the CF components data and helps to manage Cloud Foundry deployments. Deeply integrated with Cloud Foundry, Admin UI brings forth loads of relevant information: a list of DEA components, a list of each DEA app containers, the UAA organizations, users and groups, statistics of resource consumption, etc.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Integration_with_Cloud_Foundry_APIs\"><\/span>Integration with Cloud Foundry APIs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To enjoy a full scope of possibilities offered by Admin UI, it should be connected to the following components:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">NATS: the NATS client gem is used.<\/li>\n<li style=\"margin-bottom: 6px;\">The Cloud Controller REST API: no special library, all work with an API is implemented within Admin UI.<\/li>\n<li style=\"margin-bottom: 6px;\">the Cloud Controller DB URI: the sequel gem is used to connect the PostgreSQL or MySQL database.<\/li>\n<li style=\"margin-bottom: 6px;\">the UAA REST API: no special library, all work with an API is implemented within Admin UI.<\/li>\n<li>the UAA DB URI: the sequel gem is used to connect the PostgreSQL or MySQL database.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Performance_scaling\"><\/span>Performance \/ scaling<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Admin UI is designed to work within the Ruby process, which implies strict constraints on scaling. While you can scale vertically without any limitations, horizontal scaling calls for using a load balancer with a sticky session. As a rule, Admin UI is used by a limited number of operators, so there is no data about request workload it can handle.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Error_handling_logging_and_debugging\"><\/span>Error handling,\u00a0logging, and debugging<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If you get the &#8220;This page requires data from services that are currently unavailable&#8221; message, it means that Admin UI doesn\u2019t have access to the UAA or CC databases or is not able to get data from NATS.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-cloud-foundry-debugging.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-cloud-foundry-debugging.png\" alt=\"\" width=\"579\" height=\"204\" class=\"aligncenter size-full wp-image-45985\" \/><\/a><\/p>\n<p>To check if databases are available, you should SSH to the instance, where Admin UI is installed, and try to get access to the databases with the client tools. Make sure Admin UI has correct settings for the databases, too. Learn more about the bug in <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/issues\/89\" target=\"_blank\" rel=\"noopener noreferrer\">this GitHub issue<\/a>.<\/p>\n<p>To find out if NATS is available, you need to get its client and connect to NATS from within the Admin UI virtual machine. To do it, check out the NATS version in the Admin UI Gemfile and install a correspondent version of a gem. Then, you need to connect to NATS to prove it is possible.<\/p>\n<pre style=\"padding-left: 20px;\">gem install nats -v &lt;nats-version&gt;\r\nnats-sub \u2018&gt;\u2019 nats:\/\/nats-user@nats-password@nats-host:nats-port<\/pre>\n<p>Another issue occurs, when you have multiple instances of Admin UI and the load balancer that works in the \u201cround robin\u201d mode (you can find details <a href=\"https:\/\/groups.google.com\/a\/cloudfoundry.org\/forum\/#!searchin\/vcap-dev\/admin-ui\/vcap-dev\/2RDqvj-4kOg\/wwSLbLgpmS4J\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>). In this case, only the Admin UI header will be shown.<\/p>\n<p>If you get the \u201cWrong Scope\u201d message after authentication to Admin UI, it means you haven\u2019t configured the Admin UI UAA client properly.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Localization_Chinese_and_Russian\"><\/span>Localization (Chinese and Russian)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Support for the Russian and Chinese languages is implemented in the Altoros\u2019s fork of Admin UI in the <a href=\"https:\/\/github.com\/Altoros\/admin-ui\/tree\/i18n\" target=\"_blank\" rel=\"noopener noreferrer\">i18n branch<\/a>.<\/p>\n<p>The <a href=\"https:\/\/github.com\/cloudfoundry-incubator\/admin-ui\/pull\/128\" target=\"_blank\" rel=\"noopener noreferrer\">pull request<\/a> with the changes to the official repository mentioned is on approval to be merged.<\/p>\n<p>You can deploy a version with the Chinese and Russian support, using <a href=\"https:\/\/github.com\/Altoros\/admin-ui-boshrelease\/tree\/i18n\" target=\"_blank\" rel=\"noopener noreferrer\">our special BOSH release<\/a>. Discover more about the Admin UI BOSH release with i18n in <a href=\"https:\/\/www.altoros.com\/blog\/creating-a-bosh-release-for-admin-ui-a-monitoring-tool-for-cloud-foundry\/\" target=\"_blank\" rel=\"noopener noreferrer\">this blog post<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Issues_bugs\"><\/span>Issues \/ bugs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>While using Admin UI, you may face the following issues:<\/p>\n<ol>\n<li style=\"margin-bottom: 6px;\">The Admin UI server uses the SQLite3 file system database for caching information about Cloud Foundry. It may cause problems during horizontal scaling. See the \u201cPerformance \/ scaling\u201d section of this blog post to learn how to solve this issue.<\/li>\n<li>The authentication process doesn\u2019t recognize the changes made to the user access scope. It means if a user is logged in Admin UI, the result is the same, even after he\/she is removed from DEA or his\/her access scope is changed.<\/li>\n<\/ol>\n<p>Admin UI proved to be a great tool with a strong CF bond, using not only the Cloud Foundry REST API, but databases of such core components as the Cloud Controller and UAA. Therefore, Admin UI is able to monitor the Cloud Foundry vital data in real time without network overloading.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/creating-a-bosh-release-for-admin-ui-a-monitoring-tool-for-cloud-foundry\/\">Creating a BOSH Release for Admin UI, a Monitoring Tool for CF<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/heartbeat-v1-0-provides-high-availability-for-full-stack-cloud-foundry-monitoring\/\">Heartbeat v1.0 Provides HA for Full-Stack Cloud Foundry Monitoring<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/using-centralized-logs-and-metrics-to-monitor-cloud-foundry-across-all-levels\/\">Using Centralized Logs and Metrics to Monitor Cloud Foundry Across All Levels<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/tips-and-tricks-to-monitor-cloud-foundry-deployments-across-all-levels\/\">Tips and Tricks to Monitor a Cloud Foundry Deployment Across All Levels<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Technology basics (Ruby, the Cuba framework, Redis)<\/p>\n<p>Admin UI is a web service that allows to gather metrics from the Cloud Foundry components. The metrics of Admin UI are based on data taken from the UAA, Cloud Controller databases, and NATS. Admin UI checks the \/varz and \/healthz endpoints of the [&#8230;]<\/p>\n","protected":false},"author":35,"featured_media":45992,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,206],"class_list":["post-45973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros<\/title>\n<meta name=\"description\" content=\"The post explores Admin UI&#039;s core layers, functionality, integration with CF APIs, etc., highlighting how to address issues with logging in, scaling, and debugging.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros\" \/>\n<meta property=\"og:description\" content=\"Technology basics (Ruby, the Cuba framework, Redis) Admin UI is a web service that allows to gather metrics from the Cloud Foundry components. The metrics of Admin UI are based on data taken from the UAA, Cloud Controller databases, and NATS. Admin UI checks the \/varz and \/healthz endpoints of the [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-24T15:35:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-13T12:28:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"494\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alexander Lomov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alexander Lomov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/\",\"name\":\"Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png\",\"datePublished\":\"2014-12-24T15:35:40+00:00\",\"dateModified\":\"2019-08-13T12:28:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/32bad30d8a66fbba345c09f5ce9503a6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png\",\"width\":500,\"height\":494},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud Foundry Monitoring with Admin UI: Technical Overview\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/32bad30d8a66fbba345c09f5ce9503a6\",\"name\":\"Alexander Lomov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Alexander-Lomov-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Alexander-Lomov-150x150.jpg\",\"caption\":\"Alexander Lomov\"},\"description\":\"Alexander Lomov is a Cloud Foundry Engineer at Altoros. With extensive experience in Ruby, Go, and Python, he was involved in development of BOSH CPIs and other Cloud Foundry-related projects for Canonical, IBM, and other companies. Alexander is a frequent speaker at various events\/meetups, mostly sharing his experience with Cloud Foundry. You may also know him as the author of several blog posts about Cloud Foundry internals.\",\"sameAs\":[\"http:\/\/altoros.com\"],\"url\":\"https:\/\/www.altoros.com\/blog\/author\/alexander-lomov\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros","description":"The post explores Admin UI's core layers, functionality, integration with CF APIs, etc., highlighting how to address issues with logging in, scaling, and debugging.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/","og_locale":"en_US","og_type":"article","og_title":"Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros","og_description":"Technology basics (Ruby, the Cuba framework, Redis) Admin UI is a web service that allows to gather metrics from the Cloud Foundry components. The metrics of Admin UI are based on data taken from the UAA, Cloud Controller databases, and NATS. Admin UI checks the \/varz and \/healthz endpoints of the [...]","og_url":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/","og_site_name":"Altoros","article_published_time":"2014-12-24T15:35:40+00:00","article_modified_time":"2019-08-13T12:28:41+00:00","og_image":[{"width":500,"height":494,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png","type":"image\/png"}],"author":"Alexander Lomov","twitter_misc":{"Written by":"Alexander Lomov","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/","url":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/","name":"Cloud Foundry Monitoring with Admin UI: Technical Overview | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png","datePublished":"2014-12-24T15:35:40+00:00","dateModified":"2019-08-13T12:28:41+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/32bad30d8a66fbba345c09f5ce9503a6"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/admin-ui-for-monitoring-cloud-foundry-deployments-techncial-overview-icon.png","width":500,"height":494},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-monitoring-with-admin-ui-technical-overview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloud Foundry Monitoring with Admin UI: Technical Overview"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/32bad30d8a66fbba345c09f5ce9503a6","name":"Alexander Lomov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Alexander-Lomov-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Alexander-Lomov-150x150.jpg","caption":"Alexander Lomov"},"description":"Alexander Lomov is a Cloud Foundry Engineer at Altoros. With extensive experience in Ruby, Go, and Python, he was involved in development of BOSH CPIs and other Cloud Foundry-related projects for Canonical, IBM, and other companies. Alexander is a frequent speaker at various events\/meetups, mostly sharing his experience with Cloud Foundry. You may also know him as the author of several blog posts about Cloud Foundry internals.","sameAs":["http:\/\/altoros.com"],"url":"https:\/\/www.altoros.com\/blog\/author\/alexander-lomov\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=45973"}],"version-history":[{"count":16,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45973\/revisions"}],"predecessor-version":[{"id":45994,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45973\/revisions\/45994"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/45992"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=45973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=45973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=45973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}