Istio
Deploy this integration to send traces from your Istio service mesh layers to Logz.io via the OpenTelemetry collector using logzio-k8s-telemetry Helm chart. The main repository for Logz.io helm charts are logzio-helm.
Before you begin, you'll need:
- An applicaion instrumented by Istio in a Kubernetes cluster
- Istioctl installed on your machine
- An active Logz.io account
This integration uses OpenTelemetry Collector Contrib, not the OpenTelemetry Collector Core.
1. Deploy the Helm chart in the same Kubernetes cluster as your application
Add logzio-helm
repo as follows:
helm repo add logzio-helm https://logzio.github.io/logzio-helm
helm repo update
2. Run the Helm deployment code
helm install -n monitoring \
--set metricsOrTraces.enabled=true \
--set logzio-k8s-telemetry.traces.enabled=true \
--set logzio-k8s-telemetry.secrets.TracesToken="<<TRACING-SHIPPING-TOKEN>>" \
--set logzio-k8s-telemetry.secrets.LogzioRegion="<<LOGZIO_ACCOUNT_REGION_CODE>>" \
--set logzio-k8s-telemetry.secrets.env_id="<<CLUSTER-NAME>>" \
logzio-monitoring logzio-helm/logzio-monitoring
Replace <<TRACING-SHIPPING-TOKEN>>
with the token of the account you want to ship to.
Replace <LOGZIO_ACCOUNT_REGION_CODE>
with the applicable region code.
3. Define the logzio-k8s-telemetry service name
In most cases, the service name will be logzio-k8s-telemetry.default.svc.cluster.local
, where default
is the namespace where you deployed the helm chart and svc.cluster.name
is your cluster domain name.
If you are not sure what your cluster domain name is, you can run the following command to look it up:
kubectl run -it --image=k8s.gcr.io/e2e-test-images/jessie-dnsutils:1.3 --restart=Never shell -- \
sh -c 'nslookup kubernetes.default | grep Name | sed "s/Name:\skubernetes.default//"'
It will deploy a small pod that extracts your cluster domain name from your Kubernetes environment. You can remove this pod after it has returned the cluster domain name.
4. Set Istio to send traces to Logz.io
Replace <<logzio-k8s-telemetry-service-name>>
in the command below with the service name obtained in the previous step and run the command.
istioctl install --set meshConfig.defaultConfig.tracing.zipkin.address=<<logzio-k8s-telemetry-service-name>>:9411 --set values.pilot.traceSampling=100.0
By default, we set the traceSampling
to 100, which means that Istio will send 100% of the application traces to Logz.io. You can adjust this value as required.
5. Check Logz.io for your traces
Give your traces some time to get from your system to ours, then open Logz.io.