macOS

Plugin: macos.plugin
Module: mach_smi

Overview
Monitor macOS metrics for efficient operating system performance.
The plugin uses three different methods to collect data:
- The function
sysctlbyname
is called to collect network, swap, loadavg, and boot time.
- The functtion
host_statistic
is called to collect CPU and Virtual memory data;
- The function
IOServiceGetMatchingServices
to collect storage information.
This collector is only supported on the following platforms:
This collector only supports collecting metrics from a single instance of this integration.
Default Behavior
Auto-Detection
This integration doesn't support auto-detection.
Limits
The default configuration for this integration does not impose any limits on data collection.
Performance Impact
The default configuration for this integration is not expected to impose a significant performance impact on the system.
Metrics
Metrics grouped by scope.
The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
Per macOS instance
These metrics refer to hardware and network monitoring.
This scope has no labels.
Metrics:
Metric |
Dimensions |
Unit |
system.cpu |
user, nice, system, idle |
percentage |
system.ram |
active, wired, throttled, compressor, inactive, purgeable, speculative, free |
MiB |
mem.swapio |
io, out |
KiB/s |
mem.pgfaults |
memory, cow, pagein, pageout, compress, decompress, zero_fill, reactivate, purge |
faults/s |
system.load |
load1, load5, load15 |
load |
mem.swap |
free, used |
MiB |
system.ipv4 |
received, sent |
kilobits/s |
ipv4.tcppackets |
received, sent |
packets/s |
ipv4.tcperrors |
InErrs, InCsumErrors, RetransSegs |
packets/s |
ipv4.tcphandshake |
EstabResets, ActiveOpens, PassiveOpens, AttemptFails |
events/s |
ipv4.tcpconnaborts |
baddata, userclosed, nomemory, timeout |
connections/s |
ipv4.tcpofo |
inqueue |
packets/s |
ipv4.tcpsyncookies |
received, sent, failed |
packets/s |
ipv4.ecnpkts |
CEP, NoECTP |
packets/s |
ipv4.udppackets |
received, sent |
packets/s |
ipv4.udperrors |
RcvbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti |
events/s |
ipv4.icmp |
received, sent |
packets/s |
ipv4.icmp_errors |
InErrors, OutErrors, InCsumErrors |
packets/s |
ipv4.icmpmsg |
InEchoReps, OutEchoReps, InEchos, OutEchos |
packets/s |
ipv4.packets |
received, sent, forwarded, delivered |
packets/s |
ipv4.fragsout |
ok, failed, created |
packets/s |
ipv4.fragsin |
ok, failed, all |
packets/s |
ipv4.errors |
InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos |
packets/s |
ipv6.packets |
received, sent, forwarded, delivers |
packets/s |
ipv6.fragsout |
ok, failed, all |
packets/s |
ipv6.fragsin |
ok, failed, timeout, all |
packets/s |
ipv6.errors |
InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes |
packets/s |
ipv6.icmp |
received, sent |
messages/s |
ipv6.icmpredir |
received, sent |
redirects/s |
ipv6.icmperrors |
InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems |
errors/s |
ipv6.icmpechos |
InEchos, OutEchos, InEchoReplies, OutEchoReplies |
messages/s |
ipv6.icmprouter |
InSolicits, OutSolicits, InAdvertisements, OutAdvertisements |
messages/s |
ipv6.icmpneighbor |
InSolicits, OutSolicits, InAdvertisements, OutAdvertisements |
messages/s |
ipv6.icmptypes |
InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 |
messages/s |
system.uptime |
uptime |
seconds |
system.io |
in, out |
KiB/s |
Per disk
This scope has no labels.
Metrics:
Metric |
Dimensions |
Unit |
disk.io |
read, writes |
KiB/s |
disk.ops |
read, writes |
operations/s |
disk.util |
utilization |
% of time working |
disk.iotime |
reads, writes |
milliseconds/s |
disk.await |
reads, writes |
milliseconds/operation |
disk.avgsz |
reads, writes |
KiB/operation |
disk.svctm |
svctm |
milliseconds/operation |
Per mount point
This scope has no labels.
Metrics:
Metric |
Dimensions |
Unit |
disk.space |
avail, used, reserved_for_root |
GiB |
disk.inodes |
avail, used, reserved_for_root |
inodes |
Per network device
This scope has no labels.
Metrics:
Metric |
Dimensions |
Unit |
net.net |
received, sent |
kilobits/s |
net.packets |
received, sent, multicast_received, multicast_sent |
packets/s |
net.errors |
inbound, outbound |
errors/s |
net.drops |
inbound |
drops/s |
net.events |
frames, collisions, carrier |
events/s |
Alerts
The following alerts are available:
Alert name |
On metric |
Description |
interface_speed |
net.net |
network interface ${label:device} current speed |
Setup
Prerequisites
No action required.
Configuration
File
The configuration file name for this integration is netdata.conf
.
The file format is a modified INI syntax. The general structure is:
[section1]
option1 = some value
option2 = some other value
[section2]
option3 = some third value
You can edit the configuration file using the edit-config
script from the
Netdata config directory.
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config netdata.conf
Options
There are three sections in the file which you can configure:
[plugin:macos:sysctl]
- Enable or disable monitoring for network, swap, loadavg, and boot time.
[plugin:macos:mach_smi]
- Enable or disable monitoring for CPU and Virtual memory.
[plugin:macos:iokit]
- Enable or disable monitoring for storage device.
Config options
| Name | Description | Default | Required |
|:----|:-----------|:-------|:--------:|
| enable load average | Enable or disable monitoring of load average metrics (load1, load5, load15). | yes | no |
| system swap | Enable or disable monitoring of system swap metrics (free, used). | yes | no |
| bandwidth | Enable or disable monitoring of network bandwidth metrics (received, sent). | yes | no |
| ipv4 TCP packets | Enable or disable monitoring of IPv4 TCP total packets metrics (received, sent). | yes | no |
| ipv4 TCP errors | Enable or disable monitoring of IPv4 TCP packets metrics (Input Errors, Checksum, Retransmission segments). | yes | no |
| ipv4 TCP handshake issues | Enable or disable monitoring of IPv4 TCP handshake metrics (Established Resets, Active Opens, Passive Opens, Attempt Fails). | yes | no |
| ECN packets | Enable or disable monitoring of ECN statistics metrics (InCEPkts, InNoECTPkts). | auto | no |
| TCP SYN cookies | Enable or disable monitoring of TCP SYN cookies metrics (received, sent, failed). | auto | no |
| TCP out-of-order queue | Enable or disable monitoring of TCP out-of-order queue metrics (inqueue). | auto | no |
| TCP connection aborts | Enable or disable monitoring of TCP connection aborts metrics (Bad Data, User closed, No memory, Timeout). | auto | no |
| ipv4 UDP packets | Enable or disable monitoring of ipv4 UDP packets metrics (sent, received.). | yes | no |
| ipv4 UDP errors | Enable or disable monitoring of ipv4 UDP errors metrics (Recieved Buffer error, Input Errors, No Ports, IN Checksum Errors, Ignore Multi). | yes | no |
| ipv4 icmp packets | Enable or disable monitoring of IPv4 ICMP packets metrics (sent, received, in error, OUT error, IN Checksum error). | yes | no |
| ipv4 icmp messages | Enable or disable monitoring of ipv4 ICMP messages metrics (I/O messages, I/O Errors, In Checksum). | yes | no |
| ipv4 packets | Enable or disable monitoring of ipv4 packets metrics (received, sent, forwarded, delivered). | yes | no |
| ipv4 fragments sent | Enable or disable monitoring of IPv4 fragments sent metrics (ok, fails, creates). | yes | no |
| ipv4 fragments assembly | Enable or disable monitoring of IPv4 fragments assembly metrics (ok, failed, all). | yes | no |
| ipv4 errors | Enable or disable monitoring of IPv4 errors metrics (I/O discard, I/O HDR errors, In Addr errors, In Unknown protos, OUT No Routes). | yes | no |
| ipv6 packets | Enable or disable monitoring of IPv6 packets metrics (received, sent, forwarded, delivered). | auto | no |
| ipv6 fragments sent | Enable or disable monitoring of IPv6 fragments sent metrics (ok, failed, all). | auto | no |
| ipv6 fragments assembly | Enable or disable monitoring of IPv6 fragments assembly metrics (ok, failed, timeout, all). | auto | no |
| ipv6 errors | Enable or disable monitoring of IPv6 errors metrics (I/O Discards, In Hdr Errors, In Addr Errors, In Truncaedd Packets, I/O No Routes). | auto | no |
| icmp | Enable or disable monitoring of ICMP metrics (sent, received). | auto | no |
| icmp redirects | Enable or disable monitoring of ICMP redirects metrics (received, sent). | auto | no |
| icmp errors | Enable or disable monitoring of ICMP metrics (I/O Errors, In Checksums, In Destination Unreachable, In Packet too big, In Time Exceeds, In Parm Problem, Out Dest Unreachable, Out Timee Exceeds, Out Parm Problems.). | auto | no |
| icmp echos | Enable or disable monitoring of ICMP echos metrics (I/O Echos, I/O Echo Reply). | auto | no |
| icmp router | Enable or disable monitoring of ICMP router metrics (I/O Solicits, I/O Advertisements). | auto | no |
| icmp neighbor | Enable or disable monitoring of ICMP neighbor metrics (I/O Solicits, I/O Advertisements). | auto | no |
| icmp types | Enable or disable monitoring of ICMP types metrics (I/O Type1, I/O Type128, I/O Type129, Out Type133, Out Type135, In Type136, Out Type145). | auto | no |
| space usage for all disks | Enable or disable monitoring of space usage for all disks metrics (available, used, reserved for root). | yes | no |
| inodes usage for all disks | Enable or disable monitoring of inodes usage for all disks metrics (available, used, reserved for root). | yes | no |
| bandwidth | Enable or disable monitoring of bandwidth metrics (received, sent). | yes | no |
| system uptime | Enable or disable monitoring of system uptime metrics (uptime). | yes | no |
| cpu utilization | Enable or disable monitoring of CPU utilization metrics (user, nice, system, idel). | yes | no |
| system ram | Enable or disable monitoring of system RAM metrics (Active, Wired, throttled, compressor, inactive, purgeable, speculative, free). | yes | no |
| swap i/o | Enable or disable monitoring of SWAP I/O metrics (I/O Swap). | yes | no |
| memory page faults | Enable or disable monitoring of memory page faults metrics (memory, cow, I/O page, compress, decompress, zero fill, reactivate, purge). | yes | no |
| disk i/o | Enable or disable monitoring of disk I/O metrics (In, Out). | yes | no |
Examples
Disable swap monitoring.
A basic example that discards swap monitoring
Config
```yaml
[plugin:macos:sysctl]
system swap = no
[plugin:macos:mach_smi]
swap i/o = no
```
Disable complete Machine SMI section.
A basic example that discards swap monitoring
Config
```yaml
[plugin:macos:mach_smi]
cpu utilization = no
system ram = no
swap i/o = no
memory page faults = no
disk i/o = no
```