Skip to content

memory_bsd.go has a sysctl which isn't available in recent DragonflyBSD (not sure about previous one) #1127

@iori-yja

Description

@iori-yja

Summary

This error shown below is due to vm.swap_total sysctl that isn't available in recent DragonflyBSD (I am not sure about prior one, but FreeBSD has). I have changed the code as following patch which makes it works:

iori@tech-y09-dfly% git diff
diff --git a/collector/memory_bsd.go b/collector/memory_bsd.go
index 8c7265e..268dccc 100644
--- a/collector/memory_bsd.go
+++ b/collector/memory_bsd.go
@@ -98,7 +98,7 @@ func NewMemoryCollector() (Collector, error) {
                        {
                                name:        "swap_size_bytes",
                                description: "Total swap memory size",
-                               mib:         "vm.swap_total",
+                               mib:         "vm.swap_size",
                                dataType:    bsdSysctlTypeUint64,
                        },
                        // Descriptions via: top(1)

My question is that whether should I make PR to diverge Dfly's memory.go from memory_bsd.go. If this is applicable for other version of DragonflyBSD, I think it is worth to make them separate. If it is only seen in recent version of Dfly, I am not sure what to handle this difference. Please give me some hints to make a PR without regression.

Host operating system: output of uname -a

DragonFly tech-y09-dfly 5.3-DEVELOPMENT DragonFly v5.3.0.18494.gc70d4-DEVELOPMENT #1: Fri Aug 24 12:27:12 JST 2018 root@tech-y09-dfly:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64

node_exporter version: output of node_exporter --version

Installed from source.
iori@tech-y09-dfly% git log | head -n 3
commit 7519967
Author: Ben Kochie superq@gmail.com
Date: Sat Oct 20 08:21:51 2018 +0200
iori@tech-y09-dfly% node_exporter --version
node_exporter, version (branch: , revision: )
build user:
build date:
go version: go1.10.3

node_exporter command line flags

node_exporter (default)

Are you running node_exporter in Docker?

No

What did you do that produced an error?

Wait for a couple of seconds.

What did you expect to see?

No errors

What did you see instead?

iori@tech-y09-dfly% node_exporter
INFO[0000] Starting node_exporter (version=, branch=, revision=)  source="node_exporter.go:82"
INFO[0000] Build context (go=go1.10.3, user=, date=)     source="node_exporter.go:83"
INFO[0000] Enabled collectors:                           source="node_exporter.go:90"
INFO[0000]  - boottime                                   source="node_exporter.go:97"
INFO[0000]  - cpu                                        source="node_exporter.go:97"
INFO[0000]  - exec                                       source="node_exporter.go:97"
INFO[0000]  - filesystem                                 source="node_exporter.go:97"
INFO[0000]  - loadavg                                    source="node_exporter.go:97"
INFO[0000]  - meminfo                                    source="node_exporter.go:97"
INFO[0000]  - netdev                                     source="node_exporter.go:97"
INFO[0000]  - textfile                                   source="node_exporter.go:97"
INFO[0000]  - time                                       source="node_exporter.go:97"
INFO[0000] Listening on :9100                            source="node_exporter.go:111"
ERRO[0001] ERROR: meminfo collector failed after 0.000037s: couldn't get memory: no such file or directory  source="collector.go:132" 
ERRO[0006] ERROR: meminfo collector failed after 0.000034s: couldn't get memory: no such file or directory  source="collector.go:132"
ERRO[0011] ERROR: meminfo collector failed after 0.000037s: couldn't get memory: no such file or directory  source="collector.go:132"

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions