Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

do-agent on FreeBSD exports only CPU, load, disk usage and bandwidth metric #237

Open
mjakob-gh opened this issue Dec 27, 2020 · 16 comments

Comments

@mjakob-gh
Copy link

mjakob-gh commented Dec 27, 2020

Describe the problem

The (with fix #236) build do-agent exports only CPU, load, disk usage and bandwidth metric, at least thats what is shown in the Graphs on the webinterface.

Steps to reproduce

create a FreeBSD droplet, install the do-agent (steps to build it are in #236), run the agent e.g:
do-agent-freebsd-amd64 --debug --collector.cpu --collector.devstat --collector.zfs --collector.meminfo
check the graphs in the webinterface

Expected behavior

All relevant metrics are shown in the webinterface

System Information

Distribution and version:

do-agent information:

FreeBSD 12.2-RELEASE-p2

./do-agent-freebsd-amd64 -v

do-agent (DigitalOcean Agent)

Version:     3.8.0
Revision:    3b03160
Build Date:  So. 27 Dez. 2020 15:05:38 UTC
Go Version:  go1.15.6
Website:     https://github.com/digitalocean/do-agent

Copyright (c) 2020 DigitalOcean, Inc. All rights reserved.

This work is licensed under the terms of the Apache 2.0 license.
For a copy, see <https://www.apache.org/licenses/LICENSE-2.0.html>.
@mjakob-gh
Copy link
Author

mjakob-gh commented Dec 27, 2020

The node_exporter which is the base of do-agent, as far as i can see, extracts a lot more metrics from a FreeBSD System. e.g
node_exporter --log.level=debug --collector.filesystem.ignored-fs-types='^(cd9660|procfs|devfs)$' --collector.netdev.device-blacklist='^(lo0|pflog0)$' --collector.devstat

yields these metrics:

node_boot_time_seconds 1.608825861410354e+09
node_cpu_seconds_total{cpu="0",mode="idle"} 251822.3937007874
node_cpu_seconds_total{cpu="0",mode="interrupt"} 297.8976377952756
node_cpu_seconds_total{cpu="0",mode="nice"} 0.8740157480314961
node_cpu_seconds_total{cpu="0",mode="system"} 1520.236220472441
node_cpu_seconds_total{cpu="0",mode="user"} 3544.6929133858266
node_devstat_blocks_transferred_total{device="vtbd0"} 1.14502326e+08
node_devstat_blocks_transferred_total{device="vtbd1"} 223
node_devstat_busy_time_seconds_total{device="vtbd0"} 646
node_devstat_busy_time_seconds_total{device="vtbd1"} 0
node_devstat_bytes_total{device="vtbd0",type="read"} 1.4653878272e+10
node_devstat_bytes_total{device="vtbd0",type="write"} 4.397131264e+10
node_devstat_bytes_total{device="vtbd1",type="read"} 114176
node_devstat_bytes_total{device="vtbd1",type="write"} 0
node_devstat_duration_seconds_total{device="vtbd0",type="other"} 0
node_devstat_duration_seconds_total{device="vtbd0",type="read"} 263.40998935843567
node_devstat_duration_seconds_total{device="vtbd0",type="write"} 587.153131876513
node_devstat_duration_seconds_total{device="vtbd1",type="other"} 0
node_devstat_duration_seconds_total{device="vtbd1",type="read"} 0.00913826999994573
node_devstat_duration_seconds_total{device="vtbd1",type="write"} 0
node_devstat_transfers_total{device="vtbd0",type="other"} 0
node_devstat_transfers_total{device="vtbd0",type="read"} 896182
node_devstat_transfers_total{device="vtbd0",type="write"} 1.333487e+06
node_devstat_transfers_total{device="vtbd1",type="other"} 0
node_devstat_transfers_total{device="vtbd1",type="read"} 48
node_devstat_transfers_total{device="vtbd1",type="write"} 0
node_exec_context_switches_total 5.2028221e+07
node_exec_device_interrupts_total 2.3297e+06
node_exec_forks_total 34938
node_exec_software_interrupts_total 3.875678e+06
node_exec_system_calls_total 6.1900054e+07
node_exec_traps_total 1.7177296e+07
node_exporter_build_info{branch="release-1.0",goversion="go1.15.2",revision="0",version="1.0.1"} 1
node_filesystem_avail_bytes{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 6.4407552e+09
node_filesystem_device_error{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 0
node_filesystem_files{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 2.407678e+06
node_filesystem_files_free{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 2.107013e+06
node_filesystem_free_bytes{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 7.937441792e+09
node_filesystem_readonly{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 0
node_filesystem_size_bytes{device="/dev/gpt/rootfs",fstype="ufs",mountpoint="/"} 1.8708615168e+10
node_load1 0.708984375
node_load15 0.66552734375
node_load5 0.68310546875
node_memory_active_bytes 1.88030976e+08
node_memory_buffer_bytes 1.0809344e+08
node_memory_cache_bytes 0
node_memory_free_bytes 1.67153664e+08
node_memory_inactive_bytes 3.58027264e+08
node_memory_size_bytes 1.006723072e+09
node_memory_swap_in_bytes_total 1.9214336e+07
node_memory_swap_out_bytes_total 1.51035904e+08
node_memory_swap_size_bytes 2.147483648e+09
node_memory_swap_used_bytes 1.48783104e+08
node_memory_wired_bytes 2.64298496e+08
node_network_receive_bytes_total{device="vtnet0"} 4.04484491e+08
node_network_receive_drop_total{device="vtnet0"} 0
node_network_receive_errs_total{device="vtnet0"} 0
node_network_receive_multicast_total{device="vtnet0"} 71
node_network_receive_packets_total{device="vtnet0"} 289107
node_network_transmit_bytes_total{device="vtnet0"} 8.3092883e+07
node_network_transmit_drop_total{device="vtnet0"} 0
node_network_transmit_errs_total{device="vtnet0"} 0
node_network_transmit_multicast_total{device="vtnet0"} 0
node_network_transmit_packets_total{device="vtnet0"} 197485
node_textfile_scrape_error 0
node_time_seconds 1.609083048503723e+09
node_uname_info{domainname="xyz",machine="amd64",nodename="mynode",release="12.2-RELEASE-p1",sysname="FreeBSD",version="FreeBSD 12.2-RELEASE-p1 GENERIC "} 1
node_zfs_abdstats_linear_count_total 0
node_zfs_abdstats_linear_data_bytes 0
node_zfs_abdstats_scatter_chunk_waste_bytes 0
node_zfs_abdstats_scatter_count_total 0
node_zfs_abdstats_scatter_data_bytes 0
node_zfs_abdstats_struct_bytes 0
node_zfs_arcstats_anon_bytes 0
node_zfs_arcstats_c_bytes 7.864416e+07
node_zfs_arcstats_c_max_bytes 6.2915328e+08
node_zfs_arcstats_c_min_bytes 7.864416e+07
node_zfs_arcstats_data_bytes 0
node_zfs_arcstats_demand_data_hits_total 0
node_zfs_arcstats_demand_data_misses_total 0
node_zfs_arcstats_demand_metadata_hits_total 0
node_zfs_arcstats_demand_metadata_misses_total 0
node_zfs_arcstats_hdr_bytes 0
node_zfs_arcstats_hits_total 0
node_zfs_arcstats_mfu_bytes 0
node_zfs_arcstats_mfu_ghost_hits_total 0
node_zfs_arcstats_mfu_ghost_size 0
node_zfs_arcstats_misses_total 0
node_zfs_arcstats_mru_bytes 0
node_zfs_arcstats_mru_ghost_bytes 0
node_zfs_arcstats_mru_ghost_hits_total 0
node_zfs_arcstats_other_bytes 0
node_zfs_arcstats_p_bytes 3.932208e+07
node_zfs_arcstats_size_bytes 0
node_zfs_zfetchstats_hits_total 0
node_zfs_zfetchstats_misses_total 0

This version of node_exporter reads the above metrics:

node_exporter --version
node_exporter, version 1.0.1 (branch: release-1.0, revision: 0)
  build user:       root
  build date:
  go version:       go1.15.2

@bsnyder788
Copy link
Contributor

👋 hey @mjakob-gh this is intended functionality. Thanks for opening the 2 issues around FreeBSD. I will look into fixing the build issue you pointed out in the other issue. The metrics visible in the cloud UI are the only ones we store on our side for display that way.

@mjakob-gh
Copy link
Author

Thanks for looking into this. Just to clarify, the graphs of my droplet show the metrics for CPU, load, disk usage and bandwidth, but the metrics for Memory and Disk I/O have no Data, see this screenshot:
image

The node_exporter can read these values (see the node_devstat... and node_memory... values above) on a FreeBSD System, but they seem to get lost, on the way to the graphs.

@bsnyder788
Copy link
Contributor

@mjakob-gh thanks for the clarification. I will look into both of your issues and see if we can make it work better in general on FreeBSD

@mjakob-gh
Copy link
Author

I created a beefy Ubuntu droplet to see, how the performance monitoring looks over there. I noticed that only "Bandwidth", "CPU Usage" and "Disk I/O" is shown on the graph page.
image
Maybe there were changes in this functionality, since my droplet is 3 years old, by now. So, if "Memory", "Disk Usage" and "Load" are no longer supported, there is no need for putting effort into this. "Disk I/O" would be nice, though.
I also noticed, on FreeBSD the "CPU" percentage is shown as single value, on Ubuntu it is "CPU Usage", with user and sys graphed separately.

@bsnyder788
Copy link
Contributor

The graph view you are seeing there is the hypervisor graph view which is shown for droplets without the do-agent installed. Are you sure that Ubuntu droplet has the agent installed and running? @mjakob-gh

@bsnyder788
Copy link
Contributor

The graph view you are seeing there is the hypervisor graph view which is shown for droplets without the do-agent installed. Are you sure that Ubuntu droplet has the agent installed and running? @mjakob-gh

You may have to hard refresh the page if you just installed the agent as well for it to get picked up and transition to the more detailed view.

@mjakob-gh
Copy link
Author

Ah, yes. I visited various parts of the web interface like Networking or Volumes, but when coming back, the graphs did not change. After a ctrl+F5 the correct graphs are displayed, even with the single CPU % value like in my FreeBSD droplet. Thanks.

@stale
Copy link

stale bot commented Jun 4, 2021

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label Jun 4, 2021
@bsnyder788
Copy link
Contributor

still valid

@stale stale bot removed the stale label Jun 4, 2021
@stale
Copy link

stale bot commented Sep 6, 2021

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label Sep 6, 2021
@bsnyder788
Copy link
Contributor

still valid

@stale stale bot removed the stale label Sep 7, 2021
@stale
Copy link

stale bot commented Jan 8, 2022

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label Jan 8, 2022
@bsnyder788
Copy link
Contributor

still valid

@stale stale bot removed the stale label Jan 10, 2022
@stale
Copy link

stale bot commented Apr 16, 2022

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label Apr 16, 2022
@bsnyder788
Copy link
Contributor

still valid

@stale stale bot removed the stale label Apr 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants