istio.io/istio@v0.0.0-20240520182934-d79c90f27776/samples/addons/README.md (about)

     1  # Telemetry Addons
     2  
     3  This directory contains sample deployments of various addons that integrate with Istio. While these applications
     4  are not a part of Istio, they are essential to making the most of Istio's observability features.
     5  
     6  The deployments here are meant to quickly get up and running, and are optimized for this case. As a result,
     7  they may not be suitable for production. See below for more info on integrating a production grade version of each
     8  addon.
     9  
    10  ## Getting started
    11  
    12  To quickly deploy all addons:
    13  
    14  ```shell script
    15  kubectl apply -f samples/addons
    16  ```
    17  
    18  Alternatively, you can deploy individual addons:
    19  
    20  ```shell script
    21  kubectl apply -f samples/addons/prometheus.yaml
    22  ```
    23  
    24  ## Addons
    25  
    26  ### Prometheus
    27  
    28  [Prometheus](https://prometheus.io/) is an open source monitoring system and time series database.
    29  You can use Prometheus with Istio to record metrics that track the health of Istio and of applications within the service mesh.
    30  You can visualize metrics using tools like [Grafana](#grafana) and [Kiali](#kiali).
    31  
    32  For more information about integrating with Prometheus, please see the [Prometheus integration page](https://istio.io/docs/ops/integrations/prometheus/).
    33  
    34  ### Grafana
    35  
    36  [Grafana](http://grafana.com/) is an open source monitoring solution that can be used to configure dashboards for Istio.
    37  You can use Grafana to monitor the health of Istio and of applications within the service mesh.
    38  
    39  This sample provides the following dashboards:
    40  
    41  * [Mesh Dashboard](https://grafana.com/grafana/dashboards/7639) provides an overview of all services in the mesh.
    42  * [Service Dashboard](https://grafana.com/grafana/dashboards/7636) provides a detailed breakdown of metrics for a service.
    43  * [Workload Dashboard](https://grafana.com/grafana/dashboards/7630) provides a detailed breakdown of metrics for a workload.
    44  * [Performance Dashboard](https://grafana.com/grafana/dashboards/11829) monitors the resource usage of the mesh.
    45  * [Control Plane Dashboard](https://grafana.com/grafana/dashboards/7645) monitors the health and performance of the control plane.
    46  * [WASM Extension Dashboard](https://grafana.com/grafana/dashboards/13277) provides an overview of mesh wide WebAssembly extension runtime and loading state.
    47  
    48  For more information about integrating with Grafana, please see the [Grafana integration page](https://istio.io/docs/ops/integrations/grafana/).
    49  
    50  ### Kiali
    51  
    52  [Kiali](https://kiali.io/) is an observability console for Istio with service mesh configuration capabilities.
    53  It helps you to understand the structure of your service mesh by inferring the topology, and also provides the health of your mesh.
    54  Kiali provides detailed metrics, and a basic [Grafana](#grafana) integration is available for advanced queries.
    55  Distributed tracing is provided by integrating [Jaeger](#jaeger).
    56  
    57  For more information about using Kiali, see the [Visualizing Your Mesh](https://istio.io/docs/tasks/observability/kiali/) task.
    58  
    59  ### Jaeger
    60  
    61  [Jaeger](https://www.jaegertracing.io/) is an open source end to end distributed tracing system, allowing users to monitor and troubleshoot transactions in complex distributed systems.
    62  
    63  Jaeger helps in a variety of tasks including:
    64  
    65  * Distributed context propagation
    66  * Distributed transaction monitoring
    67  * Root cause analysis
    68  * Service dependency analysis
    69  * Performance / latency optimization
    70  
    71  For more information about integrating with Jaeger, please see the [Jaeger integration page](https://istio.io/docs/tasks/observability/distributed-tracing/jaeger/).
    72  
    73  ### Zipkin
    74  
    75  [Zipkin](https://zipkin.io/) is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in service architectures. Features include both the collection and lookup of this data.
    76  
    77  Zipkin is an alternative to Jaeger and is not deployed by default. To replace Jaeger with Zipkin, run `kubectl apply -f samples/addons/extras/zipkin.yaml`.
    78  You may also want to remove the Jaeger deployment, which will not be used, with `kubectl delete deployment jaeger`, or avoid installing it
    79  to begin with by following the selective installation steps in [Getting Started](#getting-started).
    80  
    81  For more information about integrating with Zipkin, please see the [Zipkin integration page](https://istio.io/docs/tasks/observability/distributed-tracing/zipkin/).
    82  
    83  ### Prometheus Operator
    84  
    85  The [Prometheus Operator](https://github.com/coreos/prometheus-operator) manages and operators a Prometheus instance.
    86  
    87  As an alternative to the standard Prometheus deployment, we provide a `ServiceMonitor` to monitor the Istio control plane and `PodMonitor`
    88  Envoy proxies. To use these, make sure you have the Prometheus operator deployed, then run `kubectl apply -f samples/addons/extras/prometheus-operator.yaml`.
    89  
    90  > **Note**
    91  >
    92  > The example `PodMonitor` requires [metrics merging](https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-metrics-merging) to be enabled. This is enabled by default.
    93  >
    94  > **Note**
    95  >
    96  > The configurations here are only for Istio deployments, and do not scrape metrics from the Kubernetes components.
    97  > See the [Cluster Monitoring](https://coreos.com/operators/prometheus/docs/latest/user-guides/cluster-monitoring.html) documentation for configuring this.
    98  >
    99  > **Warning**
   100  >
   101  > When the example `PodMonitor` is used with OpenShift Monitoring, it must be created in all namespaces where istio-proxies exist.
   102  > This is because `namespaceSelector` is ignored for tenancy isolation.