<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Víctor Hernando</title>
    <description>The latest articles on DEV Community by Víctor Hernando (@vhernandomartin).</description>
    <link>https://dev.to/vhernandomartin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F947862%2F1c5275be-a33a-459f-8e44-68437984c34e.jpeg</url>
      <title>DEV Community: Víctor Hernando</title>
      <link>https://dev.to/vhernandomartin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vhernandomartin"/>
    <language>en</language>
    <item>
      <title>Cost Advisor: Optimize and Rightsize your Kubernetes Costs</title>
      <dc:creator>Víctor Hernando</dc:creator>
      <pubDate>Wed, 19 Oct 2022 13:38:46 +0000</pubDate>
      <link>https://dev.to/sysdig/cost-advisor-optimize-and-rightsize-your-kubernetes-costs-2cd9</link>
      <guid>https://dev.to/sysdig/cost-advisor-optimize-and-rightsize-your-kubernetes-costs-2cd9</guid>
      <description>&lt;p&gt;Kubernetes has broken down barriers as the cornerstone of cloud-native application infrastructure in recent years. In addition, cloud vendors offer flexibility, speedy operations, high availability, SLAs (service-level agreement) that guarantee your service availability, and a large catalog of embedded services. But as organizations mature in their Kubernetes journey, monitoring and optimizing costs is the next stage in their cloud-native transformation. &lt;/p&gt;

&lt;p&gt;Estimating the costs of the workloads running on Kubernetes clusters across your cloud providers, and correlating these costs with your application performance metrics, is a need for every company running its applications in the cloud. &lt;/p&gt;

&lt;p&gt;Cloud billing reports don’t have Kubernetes context. That means users aren’t able to group costs or disseminate it by workloads, and are unable to charge back costs to teams or identify areas of overspend. &lt;/p&gt;

&lt;p&gt;To address these gaps in Kubernetes cost monitoring, we are excited to announce &lt;strong&gt;Cost Advisor&lt;/strong&gt;, a new product in Sysdig Monitor that will give you visibility into Kubernetes costs and automatically help you identify areas to reduce them. With Cost Advisor you can &lt;strong&gt;reduce wasted spending by 40% on average&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ZD0jSUKEONk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Kubernetes cost visibility
&lt;/h2&gt;

&lt;p&gt;When it comes to control and associate costs with the resource consumption in Kubernetes, it’s tough and complex for any organization. The lack of visibility on the costs of the Kubernetes resources per usage, plus some of the bad habits users have (like tending to oversize resource allocation), create challenging situations.  &lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://www.cncf.io/wp-content/uploads/2021/06/FINOPS_Kubernetes_Report.pdf"&gt;CNCF FinOps for Kubernetes survey&lt;/a&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;68% of people said their Kubernetes costs are rising. &lt;/li&gt;
&lt;li&gt;Around 69% of respondents said they have no Kubernetes cost monitoring or only have cost estimates. &lt;/li&gt;
&lt;li&gt;Only 13% utilized accurate showbacks.&lt;/li&gt;
&lt;li&gt;Just 14% of respondents have affirmed that they have a chargeback in place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://sysdig.com/use-cases/cost-optimization/"&gt;Cost Advisor&lt;/a&gt; automatically pulls cost data from cloud providers, and this is enriched with Kubernetes context to show a line-by-line item of costs by clusters and workloads. The unified view of utilization, performance, and costs insights gives essential data to associate costs with teams for performing chargebacks, and helps drive accountability. &lt;/p&gt;

&lt;p&gt;Organizations can leverage Cost Advisor to establish FinOps best practices, including promoting a culture of cost discipline where all teams are reviewing and optimizing cost.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VFSkUQX1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yw63vz664urbvjbl2wcs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VFSkUQX1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yw63vz664urbvjbl2wcs.png" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cost Advisor helps you track costs over time, and correlate spend with new deployments and KPI metrics.&lt;/p&gt;

&lt;p&gt;Alerts help you get ahead of unexpected increases in cost, and give you immediate understanding of which workloads need to be reviewed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kubernetes cost optimization
&lt;/h2&gt;

&lt;p&gt;The visibility Cost Advisor gives into Kubernetes costs is an essential tool in optimizing Kubernetes resources, ultimately lowering the bill you get from your cloud provider.&lt;/p&gt;

&lt;p&gt;Sysdig’s analysis of customer environments indicates an average reduction in resource overspend by 40%, with many customers having the opportunity to reduce by up to 80%. A larger environment increases the potential saving by a huge margin.&lt;/p&gt;

&lt;p&gt;Cost Advisor intelligently identifies workloads that can be optimized, and users can prioritize where to focus efforts with estimated savings. By looking at the historical utilization data Sysdig collects, a baseline is established and recommendations are made on how to size workloads. This allows teams to confidently rightsize workloads without sacrificing application performance or availability. That includes a one-liner to apply a change from the command line, as well as the corrections to make at source within Git using infrastructure as code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kyk2ufWR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/droan1exunqw22gmi8fi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kyk2ufWR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/droan1exunqw22gmi8fi.png" alt="Image description" width="880" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A key goal of Cost Advisor is to shift-left cost optimization. Making this process as effortless as possible is an important way we’re enabling our customers to promote FinOps best practices, including creating a culture of cost discipline. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cost excellence without sacrificing pace of development
&lt;/h2&gt;

&lt;p&gt;With more and more organizations moving to cloud-native, Cost Advisor ensures you can get ahead of Kubernetes cost monitoring and cost optimization. Reducing Kubernetes costs increases margins, and on average, Cost Advisor can help customers reduce Kubernetes resource waste by 40%.&lt;/p&gt;

&lt;p&gt;You can try &lt;a href="https://sysdig.com/use-cases/cost-optimization/"&gt;Cost Advisor&lt;/a&gt; by signing up for a free &lt;a href="https://sysdig.com/company/free-trial-monitor/"&gt;30-day trial of Sysdig Monitor&lt;/a&gt;. No credit card is required!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>How to monitor Istio, the Kubernetes service mesh</title>
      <dc:creator>Víctor Hernando</dc:creator>
      <pubDate>Wed, 19 Oct 2022 12:46:24 +0000</pubDate>
      <link>https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c</link>
      <guid>https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c</guid>
      <description>&lt;p&gt;Istio service mesh allows you to add key capabilities like observability, security, and traffic management to your applications without having to make any change in your code or configuration. Discover how Istio monitoring can help you guarantee your Istio services are in a good shape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yAZLCbqR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/444yozgz7sai0mrnimek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yAZLCbqR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/444yozgz7sai0mrnimek.png" alt="Image description" width="880" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we’ll talk about basic Istio concepts. You’ll find out which are the most interesting metrics for Istio monitoring. In addition, we’ll walk you through the set of tools you need to manage Istio and inspect what’s under the hood. &lt;/p&gt;

&lt;p&gt;These are the topics covered in this article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#what-is-istio"&gt;What is Istio?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#istio-overview"&gt;Istio overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#how-to-monitor-istio-with-prometheus"&gt;How to monitor Istio with Prometheus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#grafana-dashboards"&gt;Grafana dashboards for Istio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#kiali"&gt;What is Kiali?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sysdig/how-to-monitor-istio-the-kubernetes-service-mesh-3c9c#jaeger"&gt;What is Jaeger?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Istio
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/istio/istio"&gt;Istio service mesh&lt;/a&gt; is a dedicated infrastructure layer that you can add transparently to your applications. This new layer adds extra capabilities to the infrastructure, allowing you to manage the traffic between your microservices. You can create your own rules to balance the traffic based on your preferences, implement fault injection rules to apply chaos engineering to your code, and much more.&lt;/p&gt;

&lt;p&gt;Istio service mesh is made up of many different components, split into two layers: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control plane&lt;/li&gt;
&lt;li&gt;Data plane &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Due to the complexity of Istio and its whole ecosystem, monitoring Istio can be a challenging task. Istio service mesh users cannot lose sight of what’s happening with their services, otherwise, they could end up having performance or availability issues on their applications.&lt;/p&gt;

&lt;p&gt;What if some of the Istio service mesh control plane components start failing? &lt;/p&gt;

&lt;p&gt;What if one of the Envoy sidecars doesn’t perform well? &lt;/p&gt;

&lt;p&gt;How important is it to detect these and other kinds of issues in time by using Istio service mesh in Kubernetes?&lt;/p&gt;

&lt;p&gt;Learn more about how Istio monitoring can help you prevent problems with Istio control plane, services, and workloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Istio overview
&lt;/h2&gt;

&lt;p&gt;These are some of the features that the Istio control plane provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Load balancing for HTTP, gRPC, WebSocket, and TCP traffic.&lt;/li&gt;
&lt;li&gt;Control flow mechanism of traffic behavior, by implementing rich routing rules, fault injection, failovers, etc. Configure your own circuit breaker rules to create resilient applications.&lt;/li&gt;
&lt;li&gt;Logs, traces, and metrics of your Istio service mesh.&lt;/li&gt;
&lt;li&gt;Secured communication between services with TLS encryption, authentication, and authorization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this section, you’ll learn more about the Istio control plane and data plane, the services and components included in Istio, and its responsibilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tm3nmTeU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/in2zuq3hbmygadwgptpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tm3nmTeU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/in2zuq3hbmygadwgptpa.png" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Istio control plane
&lt;/h3&gt;

&lt;p&gt;Istiod is the name for the Istio service mesh control plane. It consists of the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pilot&lt;/strong&gt;: This is the component responsible for configuring the proxies at runtime. It propagates new configurations to Istio objects through the Envoy proxy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citadel&lt;/strong&gt;: Issues certificates and ensures its rotation. It acts as an internal CA (Certificate Authority), signing the certificate signing requests (CSR) and issuing TLS certificates ensuring the traffic between services is secured.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Galley&lt;/strong&gt;: Validates and distributes configurations in the Istio service mesh. After validation, configurations are sent to Pilot for distribution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Istio data plane
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/envoyproxy/envoy"&gt;Envoy&lt;/a&gt; is a data plane component in the Istio service mesh architecture. It is not part of the control plane, but its role is key to make Istio service mesh work. Envoy is a proxy that is collocated in pods (as a sidecar container), along with the original container. This sidecar proxy is responsible for handling traffic between services in the cluster, and from internal to external services. &lt;/p&gt;

&lt;p&gt;Without Envoy it wouldn’t be possible to propagate changes, establishing communication from one service to others in the service mesh. In short, nothing would work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Istio observability
&lt;/h3&gt;

&lt;p&gt;We have talked about the Istio control plane and data plane, so far so good. But… &lt;/p&gt;

&lt;p&gt;What about monitoring this infrastructure? &lt;/p&gt;

&lt;p&gt;It seems like a complex environment, with lots of possibilities, so which tools should you use to monitor the Istio service mesh?&lt;/p&gt;

&lt;p&gt;Let’s shed light on these questions! &lt;/p&gt;

&lt;p&gt;In the following paragraphs you will learn more about the out-of-the-box observability stack for Istio. &lt;/p&gt;

&lt;p&gt;Grab a pen and paper and let’s get started! 📝 &lt;/p&gt;

&lt;p&gt;The Istio service mesh observability stack is basically made up of four components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prometheus&lt;/strong&gt;: The open source monitoring tool that collects and stores metrics as time series data, &lt;a href="https://sysdig.com/blog/kubernetes-monitoring-prometheus/"&gt;widely adopted&lt;/a&gt; and supported by the community.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grafana&lt;/strong&gt;: Like Prometheus, widely adopted and worldwide supported by the open source community. &lt;a href="https://github.com/grafana/grafana"&gt;Grafana&lt;/a&gt; connects to data sources and represents time series data in graphs, easy to consume, configure, and allows users to export/import dashboards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiali&lt;/strong&gt;: The &lt;a href="https://github.com/kiali/kiali"&gt;Istio service mesh console&lt;/a&gt;. You’ll be able to monitor and check traffic flows, configure rich rules, circuit breakers, load balancers, and more. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jaeger&lt;/strong&gt;: A distributed tracing platform. In addition to what the other tools offer, &lt;a href="https://github.com/jaegertracing/jaeger"&gt;Jaeger&lt;/a&gt; allows you to analyze network performance and optimize latencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to monitor Istio with Prometheus
&lt;/h2&gt;

&lt;p&gt;Istio brings a &lt;a href="https://github.com/istio/istio/tree/release-1.15/samples/addons"&gt;bundle of addons&lt;/a&gt;. While these components are not necessary for running the Istio infrastructure, they are highly recommended. By deploying this bundle, you will acquire the observability module. &lt;/p&gt;

&lt;p&gt;How can you deploy the observability stack? &lt;/p&gt;

&lt;p&gt;It is really easy, just follow the next steps.&lt;/p&gt;

&lt;p&gt;The first is to deploy the observability bundle that comes with the Istio release of your choice. Wait for a few minutes to have all the pods up and running, and… that’s all!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ The following instructions and configurations have been tested with Istio 1.15 in a Kubernetes 1.25 environment. For further information on how to deploy Istio, refer to the &lt;a href="https://istio.io/latest/docs/setup/getting-started/"&gt;official Istio documentation page&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ kubectl apply -f istio-1.15.0/samples/addons
$ kubectl get pods -n istio-system
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-56bdf8bf85-fsdl5               1/1     Running   0          4m
istio-egressgateway-564bdb69c7-vpxnd   1/1     Running   0          4h
istio-ingressgateway-984565b57-b5f6m   1/1     Running   0          4m
istiod-6b5cbd4c58-z79qt                1/1     Running   0          4m
jaeger-c4fdf6674-8pv8m                 1/1     Running   0          4m
kiali-5ff49b9f69-l898z                 1/1     Running   0          4m
prometheus-85949fddb-grnnp             2/2     Running   0          4m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the pods are in Running state, we can access the Prometheus dashboard. You can use the &lt;code&gt;istioctl&lt;/code&gt; command to forward the port, enabling the access on localhost.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ istioctl dashboard prometheus
http://localhost:9090
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the Prometheus console, you can execute your own queries to get any of the Istio data metrics you may need. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rJBq_ELo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c546alhteaobq848fp2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rJBq_ELo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c546alhteaobq848fp2s.png" alt="Image description" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cool! But… &lt;/p&gt;

&lt;p&gt;What are the key metrics you should check and monitor?&lt;/p&gt;

&lt;p&gt;Let’s take a look at metrics in the next section. 🔍&lt;/p&gt;

&lt;h3&gt;
  
  
  Prometheus Istio key metrics
&lt;/h3&gt;

&lt;p&gt;Istio exports a huge number of metrics. You would need a lot of time, paper, and ink to talk about all these metrics, so let’s try to highlight which are most important and why. &lt;/p&gt;

&lt;h4&gt;
  
  
  Envoy metrics
&lt;/h4&gt;

&lt;p&gt;As discussed in previous sections, Envoy proxy is the component in charge of managing the traffic between services, and from internal to external services and clients. Monitoring the envoy metrics, you’ll better understand how your applications are performing and most importantly, you’ll notice if there is a potential issue somewhere within your Istio service mesh.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;istio_requests_total&lt;/code&gt;: A counter that is incremented every time a HTTP, HTTP/2, or gRPC request is handled by an Istio proxy. This metric &lt;strong&gt;indicates the amount of traffic&lt;/strong&gt; your infrastructure is processing. Watch out for changes in this metric since it may indicate traffic loss or problems in some part of the circuit if the counter dropped significantly. In the event of increasing the numbers, it may indicate the traffic has grown. Watch out for having enough capacity in your cluster.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;istio_request_duration_miliseconds&lt;/code&gt;: It provides three “counter” metrics (_bucket, _count, _sum) to measure the &lt;strong&gt;time&lt;/strong&gt; that HTTP, HTTP/2, or gRPC requests &lt;strong&gt;need to be processed&lt;/strong&gt; through the Envoy proxy. This metric is a good indicator of performance problems in your application workflow. Higher values than expected or sudden rises in request duration might indicate many different underlying issues, like network latencies, some applications behaving differently or performing poorly because of a new application version, etc. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;istio_request_bytes&lt;/code&gt;: Three “counter” metrics (_bucket, _count, _sum), which measures the HTTP, HTTP/2, or gRPC &lt;strong&gt;requests body size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;istio_response_bytes&lt;/code&gt;: Three “counter” metrics (_bucket, _count, _sum), which measures the HTTP, HTTP/2, or gRPC &lt;strong&gt;response body size&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Pilot metrics
&lt;/h4&gt;

&lt;p&gt;Pilot metrics reflect the number of changes and the time needed to propagate configuration changes to Istio components. Drastic changes or an ascendent trend on the values of these metrics might indicate problems while propagating new configurations or modifications to Istio objects. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pilot_xds&lt;/code&gt;: This is a “gauge” metric that indicates the &lt;strong&gt;number of endpoints connected to a pilot&lt;/strong&gt; using &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#xds-protocol"&gt;xDS&lt;/a&gt; (a group of APIs that make up Discovery Service).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pilot_xds_pushes&lt;/code&gt;: “Counter” metric to show the &lt;strong&gt;number of messages and the errors sent&lt;/strong&gt; to the Listener Discovery Service (LDS), the Route Discovery Service (RDS), the Endpoint Discovery Service (EDS), and the Cluster Discovery Service (CDS).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pilot_xds_push_time&lt;/code&gt;: &lt;strong&gt;Total time&lt;/strong&gt; in seconds pilot takes to &lt;strong&gt;push messages&lt;/strong&gt; to LDS, RDS, EDS, and CDS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Galley metrics
&lt;/h4&gt;

&lt;p&gt;These metrics will give you an estimation on the number of changes being applied to Istio objects. If a new manifest is applied for changing a Istio object, and the validation webhook validates it correctly, then it will count as a passed. If the validation webhook doesn't accept the manifest for some reason, it will be counted as a failed validation. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;galley_validation_failed&lt;/code&gt;: A “counter” that measures the &lt;strong&gt;number of resource validation failed&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;galley_validation_passed&lt;/code&gt;: A “counter” that measures the &lt;strong&gt;number of resource validation passed&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Citadel metrics
&lt;/h4&gt;

&lt;p&gt;Citadel metrics will provide an overview on whether the CSR coming to Citadel are being properly accepted, signed, and issued in the form of certificates. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;citadel_server_csr_count&lt;/code&gt;: The number of &lt;strong&gt;CSR received&lt;/strong&gt; by the Istio Citadel component.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;citadel_server_root_cert_expiry_timestamp&lt;/code&gt;: The UNIX &lt;strong&gt;timestamp in seconds&lt;/strong&gt;, when Citadel root certificate &lt;strong&gt;will expire&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;citadel_server_success_cert_issuance_count&lt;/code&gt;: The &lt;strong&gt;number of certificates issued&lt;/strong&gt; that Citadel has served successfully.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Grafana dashboards
&lt;/h2&gt;

&lt;p&gt;It’s time to talk about Grafana. &lt;/p&gt;

&lt;p&gt;Grafana is one of the components included in the Istio observability bundle. You can use it to display the Istio monitoring data thanks to the predefined dashboards included in the observability stack.&lt;/p&gt;

&lt;p&gt;You can access Grafana UI the same way you did the Prometheus console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ istioctl dashboard grafana
http://localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K5wiopzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ch46tgv8mh5q5mlu0j9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K5wiopzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ch46tgv8mh5q5mlu0j9.png" alt="Image description" width="880" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kiali
&lt;/h2&gt;

&lt;p&gt;Kiali is the console for Istio service mesh. Its UI is quite versatile, offering a lot of possibilities to manage and observe your services, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Examine topology for your Istio service mesh applications.&lt;/li&gt;
&lt;li&gt;Observe the health of each service under the service topology.&lt;/li&gt;
&lt;li&gt;Get details on the network response time, how the load balancing engine is performing, application response codes, etc.&lt;/li&gt;
&lt;li&gt;Application versioning and how each version is performing.&lt;/li&gt;
&lt;li&gt;Create, delete, and modify Istio objects like Gateways, Sidecars, Services, etc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s open communication to the Kiali console:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ istioctl dashboard kiali
http://localhost:20001/kiali
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how Kiali represents the application topology as a graph. You will observe different sets of data, depending on which object you click on. For example, if you want to see data related to how the reviews application and its versions are performing, you will click on that item and all the relevant data will show up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A1tLvIeu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m6la9l0zne1yxudm0zz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A1tLvIeu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m6la9l0zne1yxudm0zz.png" alt="Image description" width="880" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we mentioned earlier, Kiali is not only an observability system, but also the Istio service mesh console. So, if you need to modify or even create an Istio object (Gateways, Services, Sidecars, etc.) you can do it from the “Istio Config” section in the console.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wL1tjZ32--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr6bj0weniukpvlgsnla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wL1tjZ32--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr6bj0weniukpvlgsnla.png" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Jaeger
&lt;/h2&gt;

&lt;p&gt;Jaeger is an open source software used for distributed tracing. Its mission is to trace transactions between distributed systems. Jaeger helps you with log traces, following the path of a certain transaction. It provides a visual mechanism to represent which way a transaction went, and valuable information like errors, response times, HTTP response codes, among others.&lt;/p&gt;

&lt;p&gt;It’s time to inspect what Jaeger is and how to interact with its console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ istioctl dashboard jaeger
http://localhost:16686
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select in the search menu the service you want to inspect and click on “Find Traces”. You can customize the time frame you want to look in, or even use tags to make a more granular search.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T5dsE68A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwk361skhgra3miebt8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T5dsE68A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwk361skhgra3miebt8d.png" alt="Image description" width="880" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select the trace you want to inspect and navigate through the calls you will find in the tree. Data is represented by a timeline graph, where it is easy to identify every call that makes up the whole workflow and how much time was needed to process every operation. This way, you will easily spot potential issues in your applications and services. For example, you can detect which component is the culprit for taking two times longer to complete the whole transaction after a change in the code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GzaDG0u3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fabzk0bltkkv84wqf59h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GzaDG0u3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fabzk0bltkkv84wqf59h.png" alt="Image description" width="880" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Istio provides a good toolset for monitoring the whole stack. These tools are not installed by default, and are not mandatory for having Istio working properly. They are highly recommended, though. &lt;/p&gt;

&lt;p&gt;If you want to make sure everything is in a good shape in Istio, consider using the observability stack. It will help you monitor and manage objects in the Istio service mesh.&lt;/p&gt;

&lt;p&gt;In addition to what you read in this article, would you like to have a tool that helps you with Istio service mesh troubleshooting?&lt;/p&gt;

&lt;p&gt;Sysdig Monitor can assist with this hard mission. The out-of-the-box dashboards, and its exclusive tools, will help you monitor and troubleshoot your Istio service mesh from a single and unified portal, with a scalable platform managed by Sysdig.  &lt;/p&gt;

&lt;p&gt;Discover what &lt;a href="https://sysdig.com/blog/how-to-monitor-istio-with-sysdig/"&gt;Sysdig Monitor brings to monitor Istio service mesh&lt;/a&gt;, and how it can help you troubleshoot issues in real time with Sysdig Monitor! &lt;/p&gt;

&lt;p&gt;If you want to learn more about how Sysdig Monitor can help with monitoring and troubleshooting your Kubernetes clusters, visit the &lt;a href="https://sysdig.com/company/start-free/"&gt;Sysdig Monitor trial page&lt;/a&gt; and request a 30-day free account. You will be up and running in minutes!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>monitoring</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
