Detect container runtime beyond Docker in telemetry (#10132)

* telemetry: detect container runtime, not just Docker

`is_docker` only checks `/.dockerenv`, a marker the Docker daemon creates.
containerd/CRI-O (Kubernetes), Podman, etc. don't, so a containerized node —
notably every Qdrant Cloud pod — reported `is_docker: false`, indistinguishable
from bare metal.

Add a `container_runtime` field (enum: none/docker/kubernetes/other) detected
from well-known markers, most specific first: KUBERNETES_SERVICE_HOST →
/.dockerenv → other container markers → none. Only docker and kubernetes are
enumerated (the modes that matter for Qdrant); the rest fold into `other`.
`is_docker` is kept but derived (== docker). Detected once via LazyLock.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Regenerate OpenAPI spec

Add the ContainerRuntime schema and container_runtime field.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kumar Shivendu
2026-08-21 17:16:30 +05:30
committed by GitHub
co-authored by Claude Opus 4.8
parent d6552e9236
commit ce2f31c773
2 changed files with 75 additions and 1 deletions
+14
View File
@@ -11933,6 +11933,7 @@
"RunningEnvironmentTelemetry": {
"type": "object",
"required": [
"container_runtime",
"cpu_flags",
"is_docker"
],
@@ -11948,6 +11949,9 @@
"is_docker": {
"type": "boolean"
},
"container_runtime": {
"$ref": "#/components/schemas/ContainerRuntime"
},
"cores": {
"type": "integer",
"format": "uint",
@@ -11996,6 +12000,16 @@
}
}
},
"ContainerRuntime": {
"description": "Container runtime Qdrant is running under (`none` if bare metal).",
"type": "string",
"enum": [
"none",
"docker",
"kubernetes",
"other"
]
},
"CpuEndian": {
"type": "string",
"enum": [