68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# Work with Istio
|
|
|
|
Instructions for transport Istio's metrics to the SkyWalking OAP server.
|
|
|
|
## Prerequisites
|
|
|
|
Istio should be installed in the Kubernetes cluster. Follow [Istio getting start](https://istio.io/docs/setup/getting-started/)
|
|
to finish it.
|
|
|
|
## Deploy SkyWalking backend
|
|
|
|
Follow the [deploying backend in Kubernetes](../backend/backend-k8s.md) to install the OAP server in the kubernetes cluster.
|
|
Refer to [OpenTelemetry receiver](../backend/backend-receivers.md#OpenTelemetry-receiver) to ingest metrics.
|
|
`otel-receiver` defaults to be inactive. Set env var `SW_OTEL_RECEIVER` to `default` to enable it.
|
|
|
|
|
|
## Deploy OpenTelemetry collector
|
|
OpenTelemetry collector is the location Istio telemetry sends metrics, then processing and sending them to SkyWalking
|
|
backend.
|
|
|
|
Following the [Getting Started](https://opentelemetry.io/docs/collector/getting-started/) to deploy this collector. There
|
|
are several components available in the collector, and they could be combined for different scenarios.
|
|
For the sake of brevity, we use the Prometheus receiver to retrieve metrics from Istio control and data plane,
|
|
then send them to SkyWalking by OpenCensus exporter.
|
|
|
|
#### Prometheus receiver
|
|
Refer to [Prometheus Receiver](https://github.com/open-telemetry/opentelemetry-collector/blob/master/receiver/prometheusreceiver/README.md)
|
|
to set up this receiver. you could find more configuration details in [Prometheus Integration of Istio](https://istio.io/latest/docs/ops/integrations/prometheus/#configuration)
|
|
to figure out how to direct Prometheus receiver to query Istio metrics.
|
|
|
|
SkyWalking supports receiving multi-cluster metrics in a single OAP cluster. A `cluster` label should be appended to every metric
|
|
fetched by this receiver even there's only a single cluster needed to be collected.
|
|
You could leverage `relabel` to add it like below:
|
|
|
|
```
|
|
relabel_configs:
|
|
- source_labels: []
|
|
target_label: cluster
|
|
replacement: <cluster name>
|
|
```
|
|
|
|
or opt to [Resource Processor](https://github.com/open-telemetry/opentelemetry-collector/blob/master/processor/resourceprocessor/README.md):
|
|
|
|
```
|
|
processors:
|
|
resource:
|
|
attributes:
|
|
- key: cluster
|
|
value: "<cluster name>"
|
|
action: upsert
|
|
```
|
|
|
|
Notice, if you try the sample of istio Prometheus Kubernetes configuration,
|
|
the issues described [here](https://github.com/open-telemetry/opentelemetry-collector/issues/2163) might block you.
|
|
Try to use the solution indicated in this issue if it's not fixed.
|
|
|
|
#### OpenCensus exporter
|
|
Follow [OpenCensus exporter configuration](https://github.com/open-telemetry/opentelemetry-collector/blob/master/exporter/opencensusexporter/README.md)
|
|
to set up a connection between OpenTelemetry collector and OAP cluster. `endpoint` is the address of OAP gRPC service.
|
|
|
|
## Observe Istio
|
|
|
|
Open Istio Dashboard in SkyWaling UI by clicking `Dashboard` -> `Istio`, then you're able to view charts and diagrams
|
|
generated by Istio metrics. You also could view them by `swctl` and set up alarm rules based on them.
|
|
|
|
|
|
NOTICE, if you want metrics of Istio managed services, including topology among them, we recommend you to consider our [ALS solution](../envoy/als_setting.md)
|