Limitations and security

Docker limitations

There are performance limitations related to the number of running containers. The total number of containers that can be monitored in parallel isn't strictly defined though; this depends on the type of monitored applications and host resources.

  • Docker containers on Linux can run in any of the following network modes: Host, Bridge, Container, Overlay, None, Macvlan. The default network mode is Bridge. From the available network modes, OneAgent is capable of reporting topology and network metrics for containers running in network modes: Host, Bridge, and Container. Topology for other network modes isn't reported. However, OneAgent is able to detect and report other network modes (with the exception of Macvlan).

    • The Container mode will only work if the linked network is also in one of the supported modes. The final referenced container must be in Bridge or Host mode. If the final referenced container is in one of the unsupported network modes (None, Overlay, Macvlan), the topology will not be reported.
  • Docker topology isn't reported when using cloud-infrastructure monitoring mode on Linux.

  • Non-standard Docker binary file locations aren't supported on Linux.

  • Container monitoring isn't supported when OneAgent is deployed on Linux in non-privileged mode (in absence of ambient capabilities and with the DISABLE_ROOT_FALLBACK flag enabled).

  • Only UNIX sockets and unencrypted TCP connections are supported when accessing the Docker API. Encrypted TLS connections aren't supported at this time. Ensure that your Daemon Socket Options don't include the --tlsverify parameter.

  • If the Docker socket file isn't owned by the docker group, then OneAgent in non-root mode won't be able to read from the Docker API. For such deployments, Docker metrics won't be reported on the Docker overview page.

  • As Openshift doesn't allow OneAgent in non-root mode to access the Docker API, there are no metrics for Openshift containers on the Docker page. Use the Kubernetes overview page instead. See Monitor Kubernetes workloads and cloud applications for more information. If Docker API metrics are still required, set OneAgent to root mode.

  • Workload and node resource metrics cannot be obtained when the container runtime 'docker' is used with a Kubernetes version greather than or equal to 1.24.

Classic Full Stack auto-instrumentation security disclosure

During auto-instrumentation of containers, OneAgent provides access (via mount point) to specific directories on the root filesystem from inside the container. This is required to utilize OneAgent installation inside the container without creating copies of code modules for each container.

That is possible when OneAgent is either

This behavior requires that container auto-instrumentation be enabled.

Directories accessible from inside the container:

  • Installation directory—provides OneAgent code modules
  • Config directory—provides shared OneAgent configuration and stores configuration specific to a process group
    • Data Storage directory—dedicated to storing large runtime data produced by OneAgent
  • Log directory—non-volatile logging from code modules and infrastructure modules

The root users inside instrumented containers have unrestricted access to the above directories on the host filesystem. This can potentially be used for container escape or resource exhaustion.