Istio

Monitoring Istio Service Mesh with groundcover.

Istio is a service mesh solution for Kubernetes, for managing and proxying network traffic between services. For monitoring, it provides metrics, logs and traces of the traffic it handles.

groundcover's Traces support Istio-managed traffic and by default translate the proxy redirections done by the service mesh to display communication across different services. This page explains how more to integrate Istio's observability capabilities into groundcover.

You can read more about configuring Istio's observability features in Istio's documentation (external link to Istio website).

Traces

To integrate Istio Distributed Tracing into groundcover, it's possible to use either Istio's Datadog or Zipkin plugins. Both methods work by directing the traces to groundcover's Alligator ingestion endpoint, as described below.

Finding the groundcover Alligator Service Endpoint

Use the instructions here to locate the endpoint for the Alligator service, referenced below as {GROUNDCOVER_ALLIGATOR_ENDPOINT}.

Applying the Istio configuration

Choose your preferred plugin - DataDog or Zipkin - and add the values below to Istio's configuration accordingly using a YAML file as described in Istio's docs here.

In the example values below, we use a sampling rate of 1%. We recommend this sampling rate as best practice when ingesting traces in order to prevent your storage from getting full.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 1.0
        datadog:
          address: {GROUNDCOVER_ALLIGATOR_ENDPOINT}:8126  

Traces integrated using this method will have "Datadog" as their source tag in the app.

Traces from Istio are associated to a specific Pod rather than a specific container. For this reason, traces integrated from Istio will not have Container Info stats available.

The changes will take effect after the istio deployments are restarted.

Metrics

Each of Istio's mesh components export Prometheus metrics, which can be scraped by groundcover using the Custom Metrics feature.

For explanation on Istio's metrics, head over to their docs - https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-metrics-merging

Last updated