{"id":3985,"date":"2024-06-18T16:53:09","date_gmt":"2024-06-18T16:53:09","guid":{"rendered":"https:\/\/wiki.thomasandsofia.com\/?p=3985"},"modified":"2024-06-28T19:04:54","modified_gmt":"2024-06-28T19:04:54","slug":"observability-and-opentelemetry-ch1-introduction-1-5","status":"publish","type":"post","link":"https:\/\/wiki.thomasandsofia.com\/?p=3985","title":{"rendered":"Observability and OpenTelemetry &#8211; CH1 Introduction 1 &#8211; 5"},"content":{"rendered":"<h1>1: Introduction<\/h1>\n<h1>2: What is Observability?<\/h1>\n<p>Observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs.<\/p>\n<p>i.e. Understand what is going on internally based on what you can see externally. (Kind of a fancy word for &#8220;Monitoring&#8221;)<\/p>\n<h4>Telemetry data (aka Signals):<\/h4>\n<ul>\n<li>Logs<\/li>\n<li>Traces<\/li>\n<li>Metrics<\/li>\n<\/ul>\n<h4>What is OpenTelemetry?<\/h4>\n<p>OpenTelemetry is an open source project that provides Observability by collecting telemetry data from your applications.<\/p>\n<p>It allows you to export Telemetry data so you can observe it later on.<\/p>\n<p>&nbsp;<\/p>\n<h1>3: What is OpenTelemetry<\/h1>\n<h3>OpenTelemetry is:<\/h3>\n<ul>\n<li>Open source<\/li>\n<li>By CNCF (Cloud Native Computing Foundation)<\/li>\n<li>Second most active project\n<ul>\n<li>Kubernetes is #1<\/li>\n<li>Others include Prometheus<\/li>\n<\/ul>\n<\/li>\n<li>Vendor agnostic<\/li>\n<\/ul>\n<p>OpenTelemetry is:<\/p>\n<ul>\n<li>A Specification<\/li>\n<li>Implementation in SDK (Software Development Kit)\n<ul>\n<li>As many as 12 languages supported<\/li>\n<\/ul>\n<\/li>\n<li>Backend Implementation\n<ul>\n<li>The OpenTelemetry Collector<\/li>\n<li>Export to a database<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>4. Cloud-Native Applications<\/h1>\n<p>Cloud Native applications use a variety of distributed applications. Each require their own methods for monitoring.<\/p>\n<ul>\n<li>Lambda functions<\/li>\n<li>Containerized functions<\/li>\n<li>etc.<\/li>\n<\/ul>\n<p>Requirement:How fast can we<\/p>\n<ul>\n<li>Find the incident<\/li>\n<li>Understand the incident<\/li>\n<li>Fix the incident<\/li>\n<\/ul>\n<p>Example:<\/p>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3986\" src=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1.png\" alt=\"\" width=\"1484\" height=\"583\" srcset=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1.png 1484w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1-300x118.png 300w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1-1024x402.png 1024w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1-768x302.png 768w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-1-150x59.png 150w\" sizes=\"auto, (max-width: 1484px) 100vw, 1484px\" \/><\/a><\/p>\n<ol>\n<li>App 1 cannot talk to the database<\/li>\n<li>Communication between App 2 &amp; App 1 causes some failure in the DB<\/li>\n<li>Communication between App 3 &amp; App 1 causes some failure in the DB<\/li>\n<\/ol>\n<p>Only using Logs and Metrics would prove to be difficult<\/p>\n<h3>Signals<\/h3>\n<p>Logs: The application story<br \/>\nMetrics: Overall system health<br \/>\nTraces: The context, the &#8220;distributed&#8221; path between apps.<\/p>\n<p>&nbsp;<\/p>\n<h1>5. What is a distributed trace?<\/h1>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3987\" src=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a.png\" alt=\"\" width=\"1123\" height=\"465\" srcset=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a.png 1123w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a-300x124.png 300w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a-1024x424.png 1024w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a-768x318.png 768w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2024\/06\/obs1-5a-150x62.png 150w\" sizes=\"auto, (max-width: 1123px) 100vw, 1123px\" \/><\/a><\/p>\n<h3>Breakdown:<\/h3>\n<ul>\n<li>Left side: Preview\n<ul>\n<li>Parent\/Child relationships<\/li>\n<li>Order in which calls were made to other services\n<ul>\n<li>Which operation happened<\/li>\n<li>Why it happened (Context)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Right side: Performance (Spend)\n<ul>\n<li>Breakdown\n<ul>\n<li>Overall process took 516ms<\/li>\n<li>users-service took 67ms to respond<\/li>\n<li>Once users-service completed,\n<ul>\n<li>orders-service was called, then called stock-service<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Can see\n<ul>\n<li>How long each operation took<\/li>\n<li>if services were performed in parallel or in sequence<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1: Introduction 2: What is Observability? Observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs. i.e. Understand what is going on internally based on what you can see externally. (Kind of a fancy word for &#8220;Monitoring&#8221;) Telemetry data (aka Signals): Logs Traces Metrics ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/?p=3985\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84],"tags":[],"class_list":["post-3985","post","type-post","status-publish","format-standard","hentry","category-observability"],"_links":{"self":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3985"}],"version-history":[{"count":2,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3985\/revisions"}],"predecessor-version":[{"id":4000,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3985\/revisions\/4000"}],"wp:attachment":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}