Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Level=error msg="instantiating docker sampler process decorator" error="Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"


#1

I’m getting the following spammed in my logs while running the New Relic agent.

  • Jul 17 11:26:27 newrelic-infra-vk4s6 newrelic-infra error time=“2019-07-17T15:26:27Z” level=error msg=“instantiating docker sampler process decorator” error=“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”

Everything appears to be running correctly. I see my clusters in NewRelic and getting alerts properly. How can I resolve this issue? I’m using IKS provided by IBM.


#2

Hi @Shane.MacMillan,

The Infrastructure agent collects metadata from Docker which it uses to “decorate” process samples collected from the underlying host. It does this by connecting to the Engine API via the Docker daemon socket, which needs to be bind-mounted inside of the containerized agent. The DaemonSet for the Kubernetes integration includes a line under the volumes section of the spec which should mount this:

      volumes:
        - name: host-volume
          hostPath:
            path: /
        - name: host-docker-socket
          hostPath:
            path: /var/run/docker.sock

If the socket is inaccessible to the Infrastructure agent, all that should be missing are container IDs on your process samples. I’m unsure how it would manifest with regard to the K8sContainerSample; can you provide me with a permalink to your account?


#3

https://infrastructure.newrelic.com/accounts/2076710/hosts/system?timeStart=1563494667000&timeEnd=1563498267693


#4

Hi @Shane.MacMillan

It looks like all of the k8s data is correctly populating in the Cluster Explorer and your Dashboards. I can see that we’re not capturing the container IDs in the ProcessSample, as expected. Can you see if the Docker socket is mounted inside of one of your newrelic-infra pods? You should be able to see it from the output of kubectl describe pod newrelic-infra-xxxx