Using LM Envision to Monitor Istio-Managed Microservices

Proactively manage modern hybrid environments with predictive insights, intelligent automation, and full-stack observability.
Explore solutionsExplore our resource library for IT pros. Get expert guides, observability strategies, and real-world insights to power smarter, AI-driven operations.
Explore resourcesOur observability platform proactively delivers the insights and automation CIOs need to accelerate innovation.
About LogicMonitorGet the latest blogs, whitepapers, eGuides, and more straight into your inbox.
Your video will begin shortly
LM Envision is an AI-powered hybrid observability platform from LogicMonitor that unites comprehensive monitoring and observability capabilities. In this blog post, we’ll show how to integrate Istio service mesh with a LogicMonitor APM so that application traces can be used within LM Envision to better understand, optimize, and troubleshoot application performance.
A service mesh enables organizations to secure and connect microservices, providing a great source for monitoring microservices. This removes the responsibility of managing all service-to-service communication within a distributed software system. The way service mesh is able to do that is through an array of network proxies. Essentially, requests between services are routed through proxies that run alongside the services but sit outside in the infrastructure layer.
Istio is an open-source service mesh designed to help in maintaining reliable service-to-service connections. Istio is by far the most popular service mesh that works with Kubernetes very well. This is an open-source implementation of the service mesh originally developed by IBM, Google, and Lyft. It can layer transparently onto a distributed application and provide all the benefits of a service mesh like traffic management, security, and observability. Istio works by deploying an extended version of Envoy as proxies to every microservice as a sidecar.
The network of proxies constitutes the data plane and The configuration and management of these proxies are done from the control plane, The control plane is basically the brain of the service mesh. It provides discovery, configuration, and certificate management to Envoy proxies in the data plane at runtime.
Like most service mesh implementations, Istio complements existing application containers with a proxy container, called a sidecar. Sidecar proxies are specially configured Envoy instances that intercept network traffic entering and leaving service containers and reroute the traffic over a dedicated network, Istio generates distributed traces through the Envoy proxies, it supports a number of tracing backends like Zipkin, Jaeger, OTEL, etc.
Istio with help of Envoy sends traces to LMOTEL Collector in HTTP Zipkin format and LMOTEL collector receives those traces with the help of Zipkin receivers. The LMOTEL collector exports the traces received from istio to the LogicMonitor backend with the help of exporter.
As part of this setup, we will be installing the LMOTEL collector and Istio.
Step-1 Setting up and configuring LMOTEL collector:
helm repo add logicmonitor "https://logicmonitor.github.io/k8s-helm-charts"
helm install -n logicmonitor \
--create-namespace \
--set lm.account=AccountName \
--set lm.bearer_token=xxxxx \
--set lm.otel_name="istio-eks-poc" \
--set replicaCount=1 \
--set-file=external_config.lmconfig=/Path/To/config.yaml \
--set service.ports.zipkin=9411 \
lmotel logicmonitor/lmotel
In the command we have exposed the Zipkin receiver port and have defined the config file path which we have downloaded in the above step.
Step-2 Setting up Istio
We will be using Istioctl to install Istio. You can refer to the document to install Istioctl.
istioctl install \
--set meshConfig.accessLogFile=/dev/stdout \
--set values.global.tracer.zipkin.address=lmotel-svc.logicmonitor:9411
## Here we are labeling default namespacekubectl label namespace default istio-injection=enabled
kubectl get ns --show-labels
Ref-1: https://istio.io/latest/docs/examples/bookinfo/
Ref-2:https://github.com/GoogleCloudPlatform/microservices-demo
After all the above steps, as soon as your application generates traces it will appear in the LM platform as shown below.
You can use these application traces within LM Envision to better understand application performance and identify areas for optimization (e.g. which spans within a trace take the longest), proactively get notified when application performance is sub-optimal (e.g. you may set up dynamic thresholds-based alerting for the duration and errors for your applications, so you know when anomalies occur), as well as speed troubleshooting time (e.g. span logs may provide context regarding why the duration is longer than normal).
4. Troubleshooting:
kubectl -n istio-system edit configmap istio
5. References:
© LogicMonitor 2025 | All rights reserved. | All trademarks, trade names, service marks, and logos referenced herein belong to their respective companies.
Blogs
Explore guides, blogs, and best practices for maximizing performance, reducing downtime, and evolving your observability strategy.