feat(collectors/cgroups): prefer `blkio.*_recursive` when available (#12462)
Ilya Mashchenko committed
Mar 21, 2022 at 14:20 UTC
d40b5cbec63d57f4d88fadb6c1abc08499924626
1 file changed
+85
-36
collectors/cgroups.plugin/sys_fs_cgroup.c
+85
-36
@@ -403,7 +403,7 @@ void read_cgroup_plugin_configuration() {
403
" !*.user "
404
" !/ "
405
" !/docker "
406
- " !/libvirt "
406
+ " !*/libvirt "
407
" !/lxc "
408
" !/lxc/*/* " // #1397 #2649
409
" !/lxc.monitor* "
@@ -1900,69 +1900,118 @@ static inline void update_filenames()
1900
}
1901
1902
if(unlikely(cgroup_enable_blkio_io && !cg->io_service_bytes.filename)) {
1903
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_service_bytes", cgroup_blkio_base, cg->id);
1904
- if(likely(stat(filename, &buf) != -1)) {
1903
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_service_bytes_recursive", cgroup_blkio_base, cg->id);
1904
+ if (unlikely(stat(filename, &buf) != -1)) {
1905
cg->io_service_bytes.filename = strdupz(filename);
1906
cg->io_service_bytes.enabled = cgroup_enable_blkio_io;
1907
- debug(D_CGROUP, "io_service_bytes filename for cgroup '%s': '%s'", cg->id, cg->io_service_bytes.filename);
1907
+ debug(D_CGROUP, "blkio.io_service_bytes_recursive filename for cgroup '%s': '%s'", cg->id, cg->io_service_bytes.filename);
1908
+ } else {
1909
+ debug(D_CGROUP, "blkio.io_service_bytes_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1910
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_service_bytes", cgroup_blkio_base, cg->id);
1911
+ if (likely(stat(filename, &buf) != -1)) {
1912
+ cg->io_service_bytes.filename = strdupz(filename);
1913
+ cg->io_service_bytes.enabled = cgroup_enable_blkio_io;
1914
+ debug(D_CGROUP, "blkio.io_service_bytes filename for cgroup '%s': '%s'", cg->id, cg->io_service_bytes.filename);
1915
+ } else {
1916
+ debug(D_CGROUP, "blkio.io_service_bytes file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1917
+ }
1918
}
1909
- else
1910
- debug(D_CGROUP, "io_service_bytes file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1919
}
1920
1913
- if(unlikely(cgroup_enable_blkio_ops && !cg->io_serviced.filename)) {
1914
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_serviced", cgroup_blkio_base, cg->id);
1915
- if(likely(stat(filename, &buf) != -1)) {
1921
+ if (unlikely(cgroup_enable_blkio_ops && !cg->io_serviced.filename)) {
1922
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_serviced_recursive", cgroup_blkio_base, cg->id);
1923
+ if (unlikely(stat(filename, &buf) != -1)) {
1924
cg->io_serviced.filename = strdupz(filename);
1925
cg->io_serviced.enabled = cgroup_enable_blkio_ops;
1918
- debug(D_CGROUP, "io_serviced filename for cgroup '%s': '%s'", cg->id, cg->io_serviced.filename);
1926
+ debug(D_CGROUP, "blkio.io_serviced_recursive filename for cgroup '%s': '%s'", cg->id, cg->io_serviced.filename);
1927
+ } else {
1928
+ debug(D_CGROUP, "blkio.io_serviced_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1929
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_serviced", cgroup_blkio_base, cg->id);
1930
+ if (likely(stat(filename, &buf) != -1)) {
1931
+ cg->io_serviced.filename = strdupz(filename);
1932
+ cg->io_serviced.enabled = cgroup_enable_blkio_ops;
1933
+ debug(D_CGROUP, "blkio.io_serviced filename for cgroup '%s': '%s'", cg->id, cg->io_serviced.filename);
1934
+ } else {
1935
+ debug(D_CGROUP, "blkio.io_serviced file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1936
+ }
1937
}
1920
- else
1921
- debug(D_CGROUP, "io_serviced file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1938
}
1939
1924
- if(unlikely(cgroup_enable_blkio_throttle_io && !cg->throttle_io_service_bytes.filename)) {
1925
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.throttle.io_service_bytes", cgroup_blkio_base, cg->id);
1926
- if(likely(stat(filename, &buf) != -1)) {
1940
+ if (unlikely(cgroup_enable_blkio_throttle_io && !cg->throttle_io_service_bytes.filename)) {
1941
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.throttle.io_service_bytes_recursive", cgroup_blkio_base, cg->id);
1942
+ if (unlikely(stat(filename, &buf) != -1)) {
1943
cg->throttle_io_service_bytes.filename = strdupz(filename);
1944
cg->throttle_io_service_bytes.enabled = cgroup_enable_blkio_throttle_io;
1929
- debug(D_CGROUP, "throttle_io_service_bytes filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_service_bytes.filename);
1945
+ debug(D_CGROUP,"blkio.throttle.io_service_bytes_recursive filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_service_bytes.filename);
1946
+ } else {
1947
+ debug(D_CGROUP, "blkio.throttle.io_service_bytes_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1948
+ snprintfz(
1949
+ filename, FILENAME_MAX, "%s%s/blkio.throttle.io_service_bytes", cgroup_blkio_base, cg->id);
1950
+ if (likely(stat(filename, &buf) != -1)) {
1951
+ cg->throttle_io_service_bytes.filename = strdupz(filename);
1952
+ cg->throttle_io_service_bytes.enabled = cgroup_enable_blkio_throttle_io;
1953
+ debug(D_CGROUP, "blkio.throttle.io_service_bytes filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_service_bytes.filename);
1954
+ } else {
1955
+ debug(D_CGROUP, "blkio.throttle.io_service_bytes file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1956
+ }
1957
}
1931
- else
1932
- debug(D_CGROUP, "throttle_io_service_bytes file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1958
}
1959
1935
- if(unlikely(cgroup_enable_blkio_throttle_ops && !cg->throttle_io_serviced.filename)) {
1936
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.throttle.io_serviced", cgroup_blkio_base, cg->id);
1937
- if(likely(stat(filename, &buf) != -1)) {
1960
+ if (unlikely(cgroup_enable_blkio_throttle_ops && !cg->throttle_io_serviced.filename)) {
1961
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.throttle.io_serviced_recursive", cgroup_blkio_base, cg->id);
1962
+ if (unlikely(stat(filename, &buf) != -1)) {
1963
cg->throttle_io_serviced.filename = strdupz(filename);
1964
cg->throttle_io_serviced.enabled = cgroup_enable_blkio_throttle_ops;
1940
- debug(D_CGROUP, "throttle_io_serviced filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_serviced.filename);
1965
+ debug(D_CGROUP, "blkio.throttle.io_serviced_recursive filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_serviced.filename);
1966
+ } else {
1967
+ debug(D_CGROUP, "blkio.throttle.io_serviced_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1968
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.throttle.io_serviced", cgroup_blkio_base, cg->id);
1969
+ if (likely(stat(filename, &buf) != -1)) {
1970
+ cg->throttle_io_serviced.filename = strdupz(filename);
1971
+ cg->throttle_io_serviced.enabled = cgroup_enable_blkio_throttle_ops;
1972
+ debug(D_CGROUP, "blkio.throttle.io_serviced filename for cgroup '%s': '%s'", cg->id, cg->throttle_io_serviced.filename);
1973
+ } else {
1974
+ debug(D_CGROUP, "blkio.throttle.io_serviced file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1975
+ }
1976
}
1942
- else
1943
- debug(D_CGROUP, "throttle_io_serviced file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1977
}
1978
1946
- if(unlikely(cgroup_enable_blkio_merged_ops && !cg->io_merged.filename)) {
1947
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_merged", cgroup_blkio_base, cg->id);
1948
- if(likely(stat(filename, &buf) != -1)) {
1979
+ if (unlikely(cgroup_enable_blkio_merged_ops && !cg->io_merged.filename)) {
1980
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_merged_recursive", cgroup_blkio_base, cg->id);
1981
+ if (unlikely(stat(filename, &buf) != -1)) {
1982
cg->io_merged.filename = strdupz(filename);
1983
cg->io_merged.enabled = cgroup_enable_blkio_merged_ops;
1951
- debug(D_CGROUP, "io_merged filename for cgroup '%s': '%s'", cg->id, cg->io_merged.filename);
1984
+ debug(D_CGROUP, "blkio.io_merged_recursive filename for cgroup '%s': '%s'", cg->id, cg->io_merged.filename);
1985
+ } else {
1986
+ debug(D_CGROUP, "blkio.io_merged_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1987
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_merged", cgroup_blkio_base, cg->id);
1988
+ if (likely(stat(filename, &buf) != -1)) {
1989
+ cg->io_merged.filename = strdupz(filename);
1990
+ cg->io_merged.enabled = cgroup_enable_blkio_merged_ops;
1991
+ debug(D_CGROUP, "blkio.io_merged filename for cgroup '%s': '%s'", cg->id, cg->io_merged.filename);
1992
+ } else {
1993
+ debug(D_CGROUP, "blkio.io_merged file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1994
+ }
1995
}
1953
- else
1954
- debug(D_CGROUP, "io_merged file for cgroup '%s': '%s' does not exist.", cg->id, filename);
1996
}
1997
1957
- if(unlikely(cgroup_enable_blkio_queued_ops && !cg->io_queued.filename)) {
1958
- snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_queued", cgroup_blkio_base, cg->id);
1959
- if(likely(stat(filename, &buf) != -1)) {
1998
+ if (unlikely(cgroup_enable_blkio_queued_ops && !cg->io_queued.filename)) {
1999
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_queued_recursive", cgroup_blkio_base, cg->id);
2000
+ if (unlikely(stat(filename, &buf) != -1)) {
2001
cg->io_queued.filename = strdupz(filename);
2002
cg->io_queued.enabled = cgroup_enable_blkio_queued_ops;
1962
- debug(D_CGROUP, "io_queued filename for cgroup '%s': '%s'", cg->id, cg->io_queued.filename);
2003
+ debug(D_CGROUP, "blkio.io_queued_recursive filename for cgroup '%s': '%s'", cg->id, cg->io_queued.filename);
2004
+ } else {
2005
+ debug(D_CGROUP, "blkio.io_queued_recursive file for cgroup '%s': '%s' does not exist.", cg->id, filename);
2006
+ snprintfz(filename, FILENAME_MAX, "%s%s/blkio.io_queued", cgroup_blkio_base, cg->id);
2007
+ if (likely(stat(filename, &buf) != -1)) {
2008
+ cg->io_queued.filename = strdupz(filename);
2009
+ cg->io_queued.enabled = cgroup_enable_blkio_queued_ops;
2010
+ debug(D_CGROUP, "blkio.io_queued filename for cgroup '%s': '%s'", cg->id, cg->io_queued.filename);
2011
+ } else {
2012
+ debug(D_CGROUP, "blkio.io_queued file for cgroup '%s': '%s' does not exist.", cg->id, filename);
2013
+ }
2014
}
1964
- else
1965
- debug(D_CGROUP, "io_queued file for cgroup '%s': '%s' does not exist.", cg->id, filename);
2015
}
2016
}
2017
else if(likely(cgroup_unified_exist)) {