Skip to content

Commit

Permalink
Craigs-MacBook-Pro.local
Browse files Browse the repository at this point in the history
  • Loading branch information
craigcomstock committed Sep 26, 2023
1 parent 9d35fb9 commit 3fc8947
Showing 1 changed file with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions docker_inventory.cf
Original file line number Diff line number Diff line change
@@ -1,25 +1,34 @@
bundle agent docker_inventory
{
classes:
"have_docker" expression => fileexists("${docker}");

vars:
"docker" string => "/usr/local/bin/docker"; # todo discover this more dynamically or per-platform
"status_list" slist => { "created", "restarting", "running", "removing", "pause", "exited", "dead" };
"status_count[${status_list}]" string => execresult(`${docker} ps -a --filter "status=${status_list}" --format "{{.Names}}" | wc -l`, "useshell", "stdout"),
meta => { "inventory", "attribute_name=Docker ${status_list} Count" };
"running_string" string => execresult(`${docker} ps -a --filter "status=running" --format "{{.Names}}"`, "noshell", "stdout");
"running_names" slist => splitstring("${running_string}", "\n", "inf"),
meta => { "inventory", "attribute_name=Docker Running Names" };
"dangling_count" string => execresult(`${docker} images --filter "dangling=true" --format "{{.Repository}}" | wc -l`, "useshell", "stdout"),
meta => { "inventory", "attribute_name=Docker Dangling Image Count" };
"images_string" string => execresult(`${docker} images --format "{{.Repository}}:{{.Tag}}"`, "noshell", "stdout");
"images_list" slist => splitstring("${images_string}", "\n", "inf"),
meta => { "inventory", "attribute_name=Docker Image List" };
any::
"docker" string => "/usr/local/bin/docker"; # todo discover this more dynamically or per-platform

have_docker::
"status_list" slist => { "created", "restarting", "running", "removing", "pause", "exited", "dead" };
"status_count[${status_list}]" string => execresult(`${docker} ps -a --filter "status=${status_list}" --format "{{.Names}}" | wc -l`, "useshell", "stdout"),
meta => { "inventory", "attribute_name=Docker ${status_list} Count" };
"running_string" string => execresult(`${docker} ps -a --filter "status=running" --format "{{.Names}}"`, "noshell", "stdout");
"running_names" slist => splitstring("${running_string}", "\n", "inf"),
meta => { "inventory", "attribute_name=Docker Running Names" };
"dangling_count" string => execresult(`${docker} images --filter "dangling=true" --format "{{.Repository}}" | wc -l`, "useshell", "stdout"),
meta => { "inventory", "attribute_name=Docker Dangling Image Count" };
"images_string" string => execresult(`${docker} images --format "{{.Repository}}:{{.Tag}}"`, "noshell", "stdout");
"images_list" slist => splitstring("${images_string}", "\n", "inf"),
meta => { "inventory", "attribute_name=Docker Image List" };

reports:
"docker containers ${status_list}: ${status_count[${status_list}]}";
"running_names: ${with}" with => storejson(running_names);
"dangling_count: ${dangling_count}";
"images_list: ${with}" with => storejson(images_list);
# "exited_string: ${exited_string}";
any::
"Hello from ${this.bundle}";

have_docker::
"docker containers ${status_list}: ${status_count[${status_list}]}";
"running_names: ${with}" with => storejson(running_names);
"dangling_count: ${dangling_count}";
"images_list: ${with}" with => storejson(images_list);
}

bundle agent main
Expand Down

0 comments on commit 3fc8947

Please sign in to comment.