{"id":12350,"date":"2022-09-27T10:41:16","date_gmt":"2022-09-27T05:11:16","guid":{"rendered":"https:\/\/blogrevamp.cashfree.com\/?p=12350"},"modified":"2022-12-13T18:52:54","modified_gmt":"2022-12-13T13:22:54","slug":"how-we-monitor-go-apps","status":"publish","type":"post","link":"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/","title":{"rendered":"Being an All Rounder &#8211; How We Monitor Go Apps"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a8f4d8f2ff05\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #364250;color:#364250\" 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: #364250;color:#364250\" 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><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a8f4d8f2ff05\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/#Measure_and_Improve\" >Measure and Improve&nbsp;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/#What_to_Measure\" >What to Measure:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/#How_to_Measure\" >How to Measure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/#Whats_missing\" >What\u2019s missing<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Since its inception in 2015, Cashfree Payments has seen near exponential growth. With aggressive growth also comes the quest to add features and products faster for our customers, at scale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The way we provide a lot of value for our users is to enable a fast feedback loop and small iterations.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The only way to do this at scale is to be able to deploy with confidence. There are tons of books, articles and talks which have been done over the years; and some ideas from there have been proven to work at scale. Principles such as Xp\/TDD + Pair Programming and CI + CD are no longer new or risky concepts to enable small release cycles.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But, unless we have the capability to observe a system at runtime, we cannot be confident of deploying and will always have constraints of deployment time\/deployment at low traffic hours and constant human support. Manual efforts and coordinations are always prone to errors, computers are way better than humans for repeated and predictable tasks. The way to scale these observability\/monitoring scales is via automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With our applications split between Java and Go, we wanted a way to measure the overall health of our systems at runtime and be able to respond to it.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-measure-and-improve\"><span class=\"ez-toc-section\" id=\"Measure_and_Improve\"><\/span><strong>Measure and Improve&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u201cIf You Can\u2019t Measure It, You Can\u2019t Improve It.\u201d<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The idea of making changes at scale without worry is to be able to measure and get near real-time stats of system execution and insights.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is especially true in distributed systems, where one failure can cause cascading effects. These side effects can eventually lead to multiple system failures.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-to-measure\"><span class=\"ez-toc-section\" id=\"What_to_Measure\"><\/span><strong>What to Measure:<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How do we set timeouts for downstream service?&nbsp;<\/li>\n\n\n\n<li>How do I attribute latency issues to a service\/database call?&nbsp;<\/li>\n\n\n\n<li>How many requests is my service currently doing?&nbsp;<\/li>\n\n\n\n<li>What is the error percentage and duration?&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-measure\"><span class=\"ez-toc-section\" id=\"How_to_Measure\"><\/span><strong>How to Measure<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Our monitoring stack consists of Prometheus + Alert Manager + Grafana, which adds monitoring and transparent observability to services. These, along with distributed tracing and logging infrastructure (Elastic+Kibana), support most of our monitoring requirements.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-s-missing\"><span class=\"ez-toc-section\" id=\"Whats_missing\"><\/span><strong>What\u2019s missing<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While most libraries would provide&nbsp; out-of-the-box support for basic metrics, there is still a lot of missing observability:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Queue execution durations<\/li>\n\n\n\n<li>Queue depth for asynchronous workloads<\/li>\n\n\n\n<li>Background processing stats&nbsp;<\/li>\n\n\n\n<li>Business level metrics (Success\/=Failed etc)&nbsp;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once these metrics are available, the next step is to add alerts and notifications based on SLOs defined.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-java-apps\"><strong>Java Apps<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Spring Boot provides an actuator library to provide most monitoring capabilities out of the box. This includes the basic observability requirements (RED -Request Error Duration)&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Requests\/minutes (or per second) depending on scale.<\/li>\n\n\n\n<li>Error rates.<\/li>\n\n\n\n<li>Easy ability to add metrics using micrometer or prometheus libraries.&nbsp;<\/li>\n\n\n\n<li>Metrics for a lot of components which are packaged by Spring.&nbsp;<\/li>\n\n\n\n<li>Duration (90percentile and 99percentile) of request durations\n<ul class=\"wp-block-list\">\n<li>At scale, averages are no good since they hide outliers&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-go-apps\"><strong>Go Apps&nbsp;<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Most services at Cashfree Payments use <a href=\"https:\/\/echo.labstack.com\/\">echo<\/a> as the framework for web and the services use echo-prometheus package which provides basic HTTP server metrics.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But this leaves a lot to be desired. For example:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Measuring latencies on external HTTP calls<\/li>\n\n\n\n<li>Database performance metrics (Errors, durations etc)<\/li>\n\n\n\n<li>Ability to easily add custom and business-specific metrics.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Also, how do we determine what component is causing latency for one of our endpoints?&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To solve these, we created a generic library that helps offload capturing metrics across components with minimal code changes.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What it provides:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Standard RED [Request Error Duration] metrics for http requests.&nbsp;<\/li>\n\n\n\n<li>Ability to create a custom counter, histogram or summary vector with ease.&nbsp;<\/li>\n\n\n\n<li>HTTP client connection stats (90-99percentile latency for each external call).<\/li>\n\n\n\n<li>DB Connection stats:\n<ul class=\"wp-block-list\">\n<li>Open\/Idle\/Active connections<\/li>\n\n\n\n<li>Query Durations ( 90-99percentile latency )<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-how-it-helps\"><strong>How It helps<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The library packages the http client and a database client with prometheus metrics being bundled with most operations. Given our focus on compatibility, we ensure that this can be introduced in applications without much code change, both http client and database clients are compatible with Go\u2019s library.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Having a common dashboard having overall metrics for the application, also helps us quickly correlate patterns such as high latencies due to external service or database workloads.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here are a few snippets from our grafana dashboard to help demonstrate the added value post-migration to the library:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/tsO9k6BaS5MljnabrNtJJ93wGafKWoibGTa7iaotlCYNaoU1i5f56b3RkRCE6DkTxBic0pqSrm_t4GPCziqhag3goPJDX0385TptYkxOQJ3_8imdqtE6fNgaRwk5aKnL59OuJ0MreU2q1a91v8fIMLknqXt9uGierqBCrMmPjg_mwMRUrjNkXixJZQ\" alt=\"How We Monitor Go Apps\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/Pai4Ab8sIDosgw0s39wjkaDrbTneRyfK4W_JENhz9tfSFvmBvxVUyyz-yoj7vii6t9nmQmJVB14jPI4GHOW-QrkWeeY4_yXhnKhPw4-K2GIK5Zs46AbhmPBc-1O-86kxqQNOqE1s84zQUOiYzcQsq__eLW4Yh_WJ5RDp1_m1y_K4B9VX9FkBL0cWww\" alt=\"How We Monitor Go Apps\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/B6WswNCw-07h2G9G58mIv_p8i6QTzzoZAVCYbaoKqOW53bsifwaygQS8NjLOd9r2F1wnTBuVyjou_1dslYJtI9HGlincd_mAkUOBgSy0MwleEdP4o71CpWGtvxfssBqDZEZyZPNhgu5v9morsLceuUQ5iBFO5sqZMVXUgb4yiZcy7CZ7p4pP4MQPBA\" alt=\"How We Monitor Go Apps\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We have also started introducing a lot of custom and business context sensitive metrics which can alert us as soon as things start going south, thus enabling a better customer experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While this has helped us a lot in understanding the runtime health of our Go apps, there are a lot more plans around adding additional features.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are also planning easy integration eventually with distributed tracing as well, making it a one-stop shop for our monitoring needs.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, the ability to sample by enabling pprof at small intervals and collecting vital statistics to help further understand probable performance issues.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>To say the least, <\/em>we are excited about&nbsp; all our upcoming experiments<em>.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is this something that hits all the right spots, cerebrally speaking?? Well then, we have some exciting opportunities lined up for awesome engineers just like you!<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.cashfree.com\/careers?utm_source=blog&amp;utm_medium=organic&amp;utm_campaign=monitor_go_apps_blog\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/sHF6Q44Y4PJ9JS57m3Yb1N95saJbEpqOdPmmDC8vyFXubmVzTh7evq4DExaSckubaRaKvZsAgB7WSlGY3OZt-GB6F6PgHlC2tgi-63hg_-Xf4-9rNmPV9pJiEPH3CfoMONSFWxRrSLZi0aihmL7TYJJy8fk2WFXCFUxkiEr6CtRTh-5nGusU1gVlAQ\" alt=\"How We Monitor Go Apps\"\/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Since its inception in 2015, Cashfree Payments has seen near exponential growth. With aggressive growth also comes the quest to add features and products faster for our customers, at scale. The way we provide a lot of value for our users is to enable a fast feedback loop and small iterations.&nbsp; The only way to<\/p>\n","protected":false},"author":26,"featured_media":12352,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_themeisle_gutenberg_block_has_review":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1,1497],"tags":[1737],"class_list":["post-12350","post","type-post","status-publish","format-standard","has-post-thumbnail","category-all","category-engineering","tag-tech-stories"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Being an All Rounder - How We Monitor Go Apps<\/title>\n<meta name=\"description\" content=\"With aggressive growth also comes the quest to add features and products faster for our customers, at scale. In this blog, we detail how we measure the overall health of our systems at runtime and are able to respond to it.\u00a0\" \/>\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.cashfree.com\/blog\/how-we-monitor-go-apps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Being an All Rounder - How We Monitor Go Apps\" \/>\n<meta property=\"og:description\" content=\"With aggressive growth also comes the quest to add features and products faster for our customers, at scale. In this blog, we detail how we measure the overall health of our systems at runtime and are able to respond to it.\u00a0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"Cashfree Payments Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-27T05:11:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T13:22:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Supal Dubey\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Supal Dubey\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Being an All Rounder - How We Monitor Go Apps","description":"With aggressive growth also comes the quest to add features and products faster for our customers, at scale. In this blog, we detail how we measure the overall health of our systems at runtime and are able to respond to it.\u00a0","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.cashfree.com\/blog\/how-we-monitor-go-apps\/","og_locale":"en_US","og_type":"article","og_title":"Being an All Rounder - How We Monitor Go Apps","og_description":"With aggressive growth also comes the quest to add features and products faster for our customers, at scale. In this blog, we detail how we measure the overall health of our systems at runtime and are able to respond to it.\u00a0","og_url":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/","og_site_name":"Cashfree Payments Blog","article_published_time":"2022-09-27T05:11:16+00:00","article_modified_time":"2022-12-13T13:22:54+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","type":"image\/png"}],"author":"Supal Dubey","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Supal Dubey","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#article","isPartOf":{"@id":"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/"},"author":{"name":"Supal Dubey","@id":"https:\/\/blogrevamp.cashfree.com\/#\/schema\/person\/56e8785573831cd3ed450a32a6413f7f"},"headline":"Being an All Rounder &#8211; How We Monitor Go Apps","datePublished":"2022-09-27T05:11:16+00:00","dateModified":"2022-12-13T13:22:54+00:00","mainEntityOfPage":{"@id":"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/"},"wordCount":892,"commentCount":0,"image":{"@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","keywords":["tech stories"],"articleSection":["All","Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogrevamp.cashfree.com\/how-we-monitor-go-apps\/","url":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/","name":"Being an All Rounder - How We Monitor Go Apps","isPartOf":{"@id":"https:\/\/blogrevamp.cashfree.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#primaryimage"},"image":{"@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","datePublished":"2022-09-27T05:11:16+00:00","dateModified":"2022-12-13T13:22:54+00:00","author":{"@id":"https:\/\/blogrevamp.cashfree.com\/#\/schema\/person\/56e8785573831cd3ed450a32a6413f7f"},"description":"With aggressive growth also comes the quest to add features and products faster for our customers, at scale. In this blog, we detail how we measure the overall health of our systems at runtime and are able to respond to it.\u00a0","breadcrumb":{"@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#primaryimage","url":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","width":1200,"height":800,"caption":"How We Monitor Go Apps"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cashfree.com\/blog\/how-we-monitor-go-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogrevamp.cashfree.com\/"},{"@type":"ListItem","position":2,"name":"All","item":"https:\/\/blogrevamp.cashfree.com\/category\/all\/"},{"@type":"ListItem","position":3,"name":"Being an All Rounder &#8211; How We Monitor Go Apps"}]},{"@type":"WebSite","@id":"https:\/\/blogrevamp.cashfree.com\/#website","url":"https:\/\/blogrevamp.cashfree.com\/","name":"Cashfree Payments Blog","description":"Cashfree Payments- Payment Gateway for India","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogrevamp.cashfree.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogrevamp.cashfree.com\/#\/schema\/person\/56e8785573831cd3ed450a32a6413f7f","name":"Supal Dubey","url":"https:\/\/blogrevamp.cashfree.com\/author\/supalcf\/"}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9MjXo-3dc","jetpack_likes_enabled":false,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blogrevamp.cashfree.com\/wp-content\/uploads\/2022\/09\/GoApps_Tn.png?fit=1200%2C800&ssl=1","_links":{"self":[{"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/posts\/12350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/comments?post=12350"}],"version-history":[{"count":4,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/posts\/12350\/revisions"}],"predecessor-version":[{"id":14016,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/posts\/12350\/revisions\/14016"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/media\/12352"}],"wp:attachment":[{"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/media?parent=12350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/categories?post=12350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogrevamp.cashfree.com\/wp-json\/wp\/v2\/tags?post=12350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}