diff --git a/src/collectors/freebsd.plugin/freebsd_devstat.c b/src/collectors/freebsd.plugin/freebsd_devstat.c
index 03dd7fe55e..cd88ff0773 100644
--- a/src/collectors/freebsd.plugin/freebsd_devstat.c
+++ b/src/collectors/freebsd.plugin/freebsd_devstat.c
@@ -352,7 +352,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 dm->st_io = rrdset_create_localhost("disk",
                                                                     disk,
                                                                     NULL,
-                                                                    disk,
+                                                                    "io",
                                                                     "disk.io",
                                                                     "Disk I/O Bandwidth",
                                                                     "KiB/s",
@@ -369,6 +369,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                                            RRD_ALGORITHM_INCREMENTAL);
                                 dm->rd_io_free = rrddim_add(dm->st_io, "frees", NULL, -1, KILO_FACTOR,
                                                            RRD_ALGORITHM_INCREMENTAL);
+                                rrdlabels_add(dm->st_io->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                             }
 
                             rrddim_set_by_pointer(dm->st_io, dm->rd_io_in,   dstat[i].bytes[DEVSTAT_READ]);
@@ -382,7 +383,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 dm->st_ops = rrdset_create_localhost("disk_ops",
                                                                      disk,
                                                                      NULL,
-                                                                     disk,
+                                                                     "ops",
                                                                      "disk.ops",
                                                                      "Disk Completed I/O Operations",
                                                                      "operations/s",
@@ -401,6 +402,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                                              RRD_ALGORITHM_INCREMENTAL);
                                 dm->rd_ops_free = rrddim_add(dm->st_ops, "frees",  NULL, -1, 1,
                                                              RRD_ALGORITHM_INCREMENTAL);
+                                rrdlabels_add(dm->st_ops->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                             }
 
                             rrddim_set_by_pointer(dm->st_ops, dm->rd_ops_in,    dstat[i].operations[DEVSTAT_READ]);
@@ -415,7 +417,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 dm->st_qops = rrdset_create_localhost("disk_qops",
                                                                       disk,
                                                                       NULL,
-                                                                      disk,
+                                                                      "ops",
                                                                       "disk.qops",
                                                                       "Disk Current I/O Operations",
                                                                       "operations",
@@ -427,6 +429,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 );
 
                                 dm->rd_qops = rrddim_add(dm->st_qops, "operations", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                                rrdlabels_add(dm->st_qops->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                             }
 
                             rrddim_set_by_pointer(dm->st_qops, dm->rd_qops, dstat[i].start_count - dstat[i].end_count);
@@ -438,7 +441,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 dm->st_util = rrdset_create_localhost("disk_util",
                                                                       disk,
                                                                       NULL,
-                                                                      disk,
+                                                                      "utilization",
                                                                       "disk.util",
                                                                       "Disk Utilization Time",
                                                                       "% of time working",
@@ -451,6 +454,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
 
                                 dm->rd_util = rrddim_add(dm->st_util, "utilization", NULL, 1, 10,
                                                          RRD_ALGORITHM_INCREMENTAL);
+                                rrdlabels_add(dm->st_util->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                             }
 
                             rrddim_set_by_pointer(dm->st_util, dm->rd_util, cur_dstat.busy_time_ms);
@@ -462,7 +466,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                 dm->st_iotime = rrdset_create_localhost("disk_iotime",
                                                                         disk,
                                                                         NULL,
-                                                                        disk,
+                                                                        "io",
                                                                         "disk.iotime",
                                                                         "Disk Total I/O Time",
                                                                         "milliseconds/s",
@@ -481,6 +485,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                                                 RRD_ALGORITHM_INCREMENTAL);
                                 dm->rd_iotime_free  = rrddim_add(dm->st_iotime, "frees",  NULL, -1, 1,
                                                                 RRD_ALGORITHM_INCREMENTAL);
+                                rrdlabels_add(dm->st_iotime->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                             }
 
                             rrddim_set_by_pointer(dm->st_iotime, dm->rd_iotime_in,    cur_dstat.duration_read_ms);
@@ -499,7 +504,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                     dm->st_await = rrdset_create_localhost("disk_await",
                                                                            disk,
                                                                            NULL,
-                                                                           disk,
+                                                                           "io",
                                                                            "disk.await",
                                                                            "Average Completed I/O Operation Time",
                                                                            "milliseconds/operation",
@@ -518,6 +523,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                                                   RRD_ALGORITHM_ABSOLUTE);
                                     dm->rd_await_free  = rrddim_add(dm->st_await, "frees",  NULL, -1, 1,
                                                                   RRD_ALGORITHM_ABSOLUTE);
+                                    rrdlabels_add(dm->st_await->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                                 }
 
                                 rrddim_set_by_pointer(dm->st_await, dm->rd_await_in,
@@ -556,7 +562,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                     dm->st_avagsz = rrdset_create_localhost("disk_avgsz",
                                                                             disk,
                                                                             NULL,
-                                                                            disk,
+                                                                            "io",
                                                                             "disk.avgsz",
                                                                             "Average Completed I/O Operation Bandwidth",
                                                                             "KiB/operation",
@@ -573,6 +579,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                                                      RRD_ALGORITHM_ABSOLUTE);
                                     dm->rd_avagsz_free  = rrddim_add(dm->st_avagsz, "frees",  NULL, -1, KILO_FACTOR,
                                                                      RRD_ALGORITHM_ABSOLUTE);
+                                    rrdlabels_add(dm->st_avagsz->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                                 }
 
                                 rrddim_set_by_pointer(dm->st_avagsz, dm->rd_avagsz_in,
@@ -604,7 +611,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
                                     dm->st_svctm = rrdset_create_localhost("disk_svctm",
                                                                            disk,
                                                                            NULL,
-                                                                           disk,
+                                                                           "ops",
                                                                            "disk.svctm",
                                                                            "Average Service Time",
                                                                            "milliseconds/operation",
@@ -617,6 +624,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
 
                                     dm->rd_svctm = rrddim_add(dm->st_svctm, "svctm", NULL, 1, 1,
                                                               RRD_ALGORITHM_ABSOLUTE);
+                                    rrdlabels_add(dm->st_svctm->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
                                 }
 
                                 rrddim_set_by_pointer(dm->st_svctm, dm->rd_svctm,
diff --git a/src/collectors/freebsd.plugin/freebsd_getifaddrs.c b/src/collectors/freebsd.plugin/freebsd_getifaddrs.c
index 03b030ac4e..ca2f36360e 100644
--- a/src/collectors/freebsd.plugin/freebsd_getifaddrs.c
+++ b/src/collectors/freebsd.plugin/freebsd_getifaddrs.c
@@ -426,7 +426,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                         ifm->st_bandwidth = rrdset_create_localhost("net",
                                                                     ifa->ifa_name,
                                                                     NULL,
-                                                                    ifa->ifa_name,
+                                                                    "traffik",
                                                                     "net.net",
                                                                     "Bandwidth",
                                                                     "kilobits/s",
@@ -439,6 +439,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
 
                         ifm->rd_bandwidth_in  = rrddim_add(ifm->st_bandwidth, "received", NULL,  8, BITS_IN_A_KILOBIT, RRD_ALGORITHM_INCREMENTAL);
                         ifm->rd_bandwidth_out = rrddim_add(ifm->st_bandwidth, "sent",     NULL, -8, BITS_IN_A_KILOBIT, RRD_ALGORITHM_INCREMENTAL);
+                        rrdlabels_add(ifm->st_bandwidth->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(ifm->st_bandwidth, ifm->rd_bandwidth_in,  IFA_DATA(ibytes));
@@ -451,7 +452,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                         ifm->st_packets = rrdset_create_localhost("net_packets",
                                                                   ifa->ifa_name,
                                                                   NULL,
-                                                                  ifa->ifa_name,
+                                                                  "packets",
                                                                   "net.packets",
                                                                   "Packets",
                                                                   "packets/s",
@@ -470,6 +471,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                                                            RRD_ALGORITHM_INCREMENTAL);
                         ifm->rd_packets_m_out = rrddim_add(ifm->st_packets, "multicast_sent",     NULL, -1, 1,
                                                            RRD_ALGORITHM_INCREMENTAL);
+                        rrdlabels_add(ifm->st_packets->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(ifm->st_packets, ifm->rd_packets_in,    IFA_DATA(ipackets));
@@ -484,7 +486,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                         ifm->st_errors = rrdset_create_localhost("net_errors",
                                                                  ifa->ifa_name,
                                                                  NULL,
-                                                                 ifa->ifa_name,
+                                                                 "errors",
                                                                  "net.errors",
                                                                  "Interface Errors",
                                                                  "errors/s",
@@ -497,6 +499,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
 
                         ifm->rd_errors_in  = rrddim_add(ifm->st_errors, "inbound",  NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                         ifm->rd_errors_out = rrddim_add(ifm->st_errors, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                        rrdlabels_add(ifm->st_errors->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(ifm->st_errors, ifm->rd_errors_in,  IFA_DATA(ierrors));
@@ -509,7 +512,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                         ifm->st_drops = rrdset_create_localhost("net_drops",
                                                                 ifa->ifa_name,
                                                                 NULL,
-                                                                ifa->ifa_name,
+                                                                "drops",
                                                                 "net.drops",
                                                                 "Interface Drops",
                                                                 "drops/s",
@@ -524,6 +527,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
 #if __FreeBSD__ >= 11
                         ifm->rd_drops_out = rrddim_add(ifm->st_drops, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 #endif
+                        rrdlabels_add(ifm->st_drops->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(ifm->st_drops, ifm->rd_drops_in,  IFA_DATA(iqdrops));
@@ -538,7 +542,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
                         ifm->st_events = rrdset_create_localhost("net_events",
                                                                  ifa->ifa_name,
                                                                  NULL,
-                                                                 ifa->ifa_name,
+                                                                 "errors",
                                                                  "net.events",
                                                                  "Network Interface Events",
                                                                  "events/s",
@@ -551,6 +555,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
 
                         ifm->rd_events_coll = rrddim_add(ifm->st_events, "collisions", NULL, -1, 1,
                                                          RRD_ALGORITHM_INCREMENTAL);
+                        rrdlabels_add(ifm->st_events->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(ifm->st_events, ifm->rd_events_coll, IFA_DATA(collisions));
diff --git a/src/collectors/freebsd.plugin/freebsd_getmntinfo.c b/src/collectors/freebsd.plugin/freebsd_getmntinfo.c
index e38e492ec1..431b3389c2 100644
--- a/src/collectors/freebsd.plugin/freebsd_getmntinfo.c
+++ b/src/collectors/freebsd.plugin/freebsd_getmntinfo.c
@@ -174,8 +174,6 @@ int do_getmntinfo(int update_every, usec_t dt) {
             mount_points_found = 0;
 
             for (i = 0; i < mntsize; i++) {
-                char title[4096 + 1];
-
                 struct mount_point *m = get_mount_point(mntbuf[i].f_mntonname);
                 m->updated = 1;
                 mount_points_found++;
@@ -214,14 +212,12 @@ int do_getmntinfo(int update_every, usec_t dt) {
 
                 if (m->do_space == CONFIG_BOOLEAN_YES || m->do_space == CONFIG_BOOLEAN_AUTO) {
                     if (unlikely(!m->st_space)) {
-                        snprintfz(title, sizeof(title) - 1, "Disk Space Usage for %s [%s]",
-                                  mntbuf[i].f_mntonname, mntbuf[i].f_mntfromname);
                         m->st_space = rrdset_create_localhost("disk_space",
                                                               mntbuf[i].f_mntonname,
                                                               NULL,
-                                                              mntbuf[i].f_mntonname,
+                                                              "used space",
                                                               "disk.space",
-                                                              title,
+                                                              "Disk Space Usage",
                                                               "GiB",
                                                               "freebsd.plugin",
                                                               "getmntinfo",
@@ -236,6 +232,8 @@ int do_getmntinfo(int update_every, usec_t dt) {
                                                           mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
                         m->rd_space_reserved = rrddim_add(m->st_space, "reserved_for_root", "reserved for root",
                                                           mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
+                        rrdlabels_add(m->st_space->rrdlabels, "mount_point", mntbuf[i].f_mntonname, RRDLABEL_SRC_AUTO);
+                        rrdlabels_add(m->st_space->rrdlabels, "filesystem", mntbuf[i].f_fstypename, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(m->st_space, m->rd_space_avail,    (collected_number) mntbuf[i].f_bavail);
@@ -250,14 +248,12 @@ int do_getmntinfo(int update_every, usec_t dt) {
 
                 if (m->do_inodes == CONFIG_BOOLEAN_YES || m->do_inodes == CONFIG_BOOLEAN_AUTO) {
                     if (unlikely(!m->st_inodes)) {
-                        snprintfz(title, sizeof(title) - 1, "Disk Files (inodes) Usage for %s [%s]",
-                                  mntbuf[i].f_mntonname, mntbuf[i].f_mntfromname);
                         m->st_inodes = rrdset_create_localhost("disk_inodes",
                                                                mntbuf[i].f_mntonname,
                                                                NULL,
-                                                               mntbuf[i].f_mntonname,
+                                                               "used inodes",
                                                                "disk.inodes",
-                                                               title,
+                                                               "Disk Files (inodes) Usage",
                                                                "inodes",
                                                                "freebsd.plugin",
                                                                "getmntinfo",
@@ -268,6 +264,8 @@ int do_getmntinfo(int update_every, usec_t dt) {
 
                         m->rd_inodes_avail = rrddim_add(m->st_inodes, "avail", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
                         m->rd_inodes_used  = rrddim_add(m->st_inodes, "used",  NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                        rrdlabels_add(m->st_inodes->rrdlabels, "mount_point", mntbuf[i].f_mntonname, RRDLABEL_SRC_AUTO);
+                        rrdlabels_add(m->st_inodes->rrdlabels, "filesystem", mntbuf[i].f_fstypename, RRDLABEL_SRC_AUTO);
                     }
 
                     rrddim_set_by_pointer(m->st_inodes, m->rd_inodes_avail, (collected_number) mntbuf[i].f_ffree);