Skip to content

Commit 0b8f04b

Browse files
svtebmartin-matkosstennbl
authored
Feat: Add option to filter processes by both containers and nodes (#27)
* Feat: Add option to filter processes by both containers and nodes - Part of #2110 in testsuite Signed-off-by: svteb <slavo.valko@tietoevry.com> Co-authored-by: Konstantin <kosstenn4uk@yandex.ru> --------- Signed-off-by: svteb <slavo.valko@tietoevry.com> Co-authored-by: Martin Matyas <martin.matyas@gmail.com> Co-authored-by: Konstantin <kosstenn4uk@yandex.ru>
1 parent 71f9497 commit 0b8f04b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

cluster_tools.cr

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ module ClusterTools
163163
pid
164164
end
165165
#each_container_by_resource(resource, namespace) do | container_id, container_pid_on_node, node, container_proctree_statuses, container_status|
166-
def self.all_containers_by_resource?(resource, namespace, &block)
166+
def self.all_containers_by_resource?(resource, namespace, only_container_pids : Bool = false, &block)
167167
kind = resource["kind"].downcase
168168
case kind
169169
when "deployment","statefulset","pod","replicaset", "daemonset"
@@ -210,8 +210,12 @@ module ClusterTools
210210

211211
node_name = node.dig("metadata", "name").as_s
212212
Log.info { "node name : #{node_name}" }
213-
pids = KernelIntrospection::K8s::Node.pids(node)
214-
Log.info { "proctree_by_pid pids: #{pids}" }
213+
if only_container_pids
214+
pids = KernelIntrospection::K8s::Node.pids_by_container(container_id, node)
215+
else
216+
pids = KernelIntrospection::K8s::Node.pids(node)
217+
end
218+
Log.info { "parsed pids: #{pids}" }
215219
proc_statuses = KernelIntrospection::K8s::Node.all_statuses_by_pids(pids, node)
216220

217221
container_proctree_statuses = KernelIntrospection::K8s::Node.proctree_by_pid(container_pid_on_node, node, proc_statuses)

0 commit comments

Comments
 (0)