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).
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 sensor ingestion endpoint, as described below.
Use the instructions to locate the endpoint for the sensor service, referenced below as {GROUNDCOVER_SENSOR_ENDPOINT}.
Choose your preferred plugin and add the values below to Istio's configuration accordingly using a YAML file as described in Istio's docs .
Traces integrated using this method will have "Datadog" as their source tag in the app.
Traces integrated using this method will have "OpenTelemetry" 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.
Each of Istio's mesh components export Prometheus metrics, which can be scraped by groundcover using the feature.
For explanation on Istio's metrics, head over to their docs -
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
enableTracing: true
defaultConfig:
tracing:
sampling: 1
extensionProviders:
- name: datadog-tracing
datadog:
address: {GROUNDCOVER_SENSOR_ENDPOINT}:8126 apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
enableTracing: true
defaultConfig:
tracing:
sampling: 1
extensionProviders:
- name: otel-tracing
opentelemetry:
port: 4318
service: {GROUNDCOVER_SENSOR_ENDPOINT}:4318
http:
path: "/v1/traces"
timeout: 5s