CRI-O is a Cloud Native Computing Foundation incubating project. According to their website, “CRI-O is an implementation of the Kubernetes CRI (Container Runtime Interface) to enable using OCI (Open Container Initiative) compatible runtimes. It is a lightweight alternative to using Docker as the runtime for Kubernetes (K8s).” CRI-O allows K8s to use any OCI-compliant runtime for running pods. CRI-O has support for OCI container images and is able to pull from any container registry.
CRI-O has been gaining in popularity as a replacement for Docker service as the container engine for Kubernetes implementations. CRI-O is developed with contributors from large organizations such as, Red Hat, Intel, SUSE, and IBM. As such, CRI-O is becoming easier to use with Kubernetes implementations like Red Hat Openshift Container Platform.
Monitoring CRI-O
CRI-O has a built-in utility, conmon, used for monitoring the containers. conmon handles logging from the container process and detects out of memory situations. As noted on the GitHub page, conmon does two things while the container runs:
- Provides a socket for attaching to the container, holding open the container’s standard streams and forwarding them over the socket.
- And, writes the contents of the container’s streams to a log file so they can be read after the container’s death.
Additionally, upon the container’s death, conmon will record the exit time and code to be read by the managing programs.
To effectively monitor a container-based application you need visibility at the host, container, component, and code level. While conmon does help monitor the state of the containers themselves, it does not offer any monitoring capabilities beyond. Because of this, conman does not provide the holistic view needed to ensure an exceptional customer experience.
How to Monitor CRI-O with Instana
Instana has long been dedicated to providing the most seamless way to discover and monitor containerized applications regardless of which container runtime you use. To discover all containers and components running in your environment, simply install the Instana Agent onto the host. Once a container or component is discovered, the Agent automatically deploys the appropriate monitoring sensors and begins tracing and analyzing every application request. A combination of machine learning and preset health rules are leveraged by Instana to automatically determine the health of every application and infrastructure component.
Metrics – Instana automatically detects CRI-O running on the host and, with no manual effort, deploys and configures Instana’s CRI-O monitoring sensor. By referencing its curated knowledge base, Instana understands which performance metrics are relevant to collect and must be configured. Instana’s automatic configuration for CRI-O tracks CPU usage, memory usage, Block IO amongst others.
Health – The Instana sensor for CRI-O also automatically collects KPIs on the CRI-O process to determine its health. Instana uses health signatures from its curated knowledge base to raise Issues or Incidents depending on user impact. For example, when the container memory usage exceeds a specified limit a memory warning threshold or critical threshold alert is displayed.
How to Monitor CRI-O Based Microservice Applications with Instana
With just a single, lightweight agent per host, Instana automatically monitors your entire CRI-O based microservices environment. Once the agent is installed, every container on that host sends monitoring data through the agent, while minimizing overhead. Instana then automatically traces every application request flowing through your environment and pulls together each distributed trace for a full, end-to-end view of every request. Instana never uses partial traces or sampling of any kind so you’ll always have a complete data set to identify the root cause of any problematic request.
To ensure you’re able to update your services as often as you need without fear of regressions impacting your customers, Instana automatically analyzes every issue and change. Instana automates the correlation of all trace data with the underlying container and host metrics, providing automatic root cause analysis in seconds.
Instana’s CRI-O monitoring includes automatic and continuous discovery, dependency mapping, metric monitoring, distributed tracing, anomaly detection, and analytics across the complete trace data set. This means you’ll always know everything that CRI-O is doing and its impact on user requests at all times. To see Instana’s CRI-O monitoring in action sign up for a free trial of Instana today.