Monitoring Docker Containers with New Relic Infrastructure

Hello,

We are evaluating whether or not new relic infrastructure can be used to monitor our docker container.

when we install Infrastructure on our servers, we cannot see the information relating to our docker containers, the only host showing is the server Infrastructure is running on.

According to https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/data-instrumentation/docker-instrumentation-infrastructure

“Using docker-containerd-shim to run containers without the Docker daemon will impair the agent’s ability to collect some metrics used in grouping data.”

Our containers are running using docker-containerd-shim, does this limit us from using any of Infrastructures docker integrations?

Thanks,
John

1 Like

@johnrellis yes, given the current status of the agent, we can’t make any guarantees around containerd.

The Docker support basically tags processes with additional information, so you can see things like the container / image in the “Processes” tab. The agent generally expects that a Docker runtime is present and provides its various interfaces for grabbing this supplemental information. containerd on its own may not necessarily provide all of this info and result in limited data based on what you mentioned in our documentation.

Thanks for getting back to me on this.

Containers monitoring with containerd is supported since version 1.9.7 of the infrastructure agent and for all Kubernetes integration versions. Let us know if you are having issues.

1 Like

I’m having the same issue. I’m with IBM. Kubernetes monitoring seems to work fine, but Docker Containers tab won’t load despite having the latest agent and integration versions installed. IBM did move to a containerd environment recently.

It would be nice to have some view into things more easily than the current kube monitoring.

So who’s right @jjoly (says it works) or @dulan (says they can’t guarantee it will work)?

Thanks in advance,
Larry

@jjoly I cannot find any documentation that states the New Relic Infrastructure agent works with containerD. [1] It mentions it requires Docker version 1.12 or higher and it uses the docker.sock to access docker.

Does the New Relic Infrastructure agent and kubernetes integration support using ContainerD vs Docker Engine?

[1] https://docs.newrelic.com/docs/infrastructure/install-infrastructure-agent/linux-installation/docker-container-infrastructure-monitoring

1 Like

We recently upgraded our Nodes from Amazon Linux 2 to BottleRocket which uses containerd instead of Docker.

Some parts of the NewRelic infrastructure monitoring stopped working. We had to remove some parts of the config, e.g.

        - mountPath: /var/run/docker.sock
          name: host-docker-socket

From the yaml file documented in https://docs.newrelic.com/docs/infrastructure/install-infrastructure-agent/linux-installation/docker-container-infrastructure-monitoring

It would be great to release new documentation for Installing the infrastructure agent as a container, but when not using Docker. I think this going to get more and more relevant given that Kubernetes has just DEPRECATED the dockershim (ref: https://kubernetes.io/blog/2020/12/02/dockershim-faq/). Many folks are going to need this soon.

4 Likes

Hi all, I seem to have encountered the same issue.


While we are able to get K8sContainerSample's, and utilise the K8s integration, we can not easily view the containers on a specific host in a click through manner.

This resents issues when debugging hosts that have extraneous CPU usage, for example, as we cannot sort the list of containers by CPU Used cores when navigating to Kubernetes > Containers given we have too many (824?)

Is there any plan to allow for the Infrastructure Hosts view to work with K8sContainerSamples instead of just ContainerSample

Especially pertinent as Tom mentioned, given the docker deprecation