Skip to content

Windows: win_perf_counters won't load on Server Core installations due to missing Windows API libraries #1763

@someone1

Description

@someone1

Bug report

Relevant telegraf.conf:

Standard one shipped with Windows client download

System info:

Telegraf: v1.0.0
Operating System: "Microsoft Hyper-V Server 2012 R2" & "Microsoft Windows Server 2012 R2 Standard"

Steps to reproduce:

  1. Try to execute any options on telegraf on a Server Core installation

Expected behavior:

To execute normally

Actual behavior:

Panic:

panic: The specified module could not be found.

goroutine 1 [running]:
panic(0x12fcb00, 0xc0820fc990)
        /usr/local/go/src/runtime/panic.go:481 +0x3f4
github.com/lxn/win.MustLoadLibrary(0x14b9480, 0xc, 0xc)
        /home/ubuntu/telegraf-build/src/github.com/lxn/win/win.go:48 +0x79
github.com/lxn/win.init.9()
        /home/ubuntu/telegraf-build/src/github.com/lxn/win/opengl32.go:117 +0x37

github.com/lxn/win.init()
        /home/ubuntu/telegraf-build/src/github.com/lxn/win/winspool.go:100 +0x78

github.com/influxdata/telegraf/plugins/inputs/win_perf_counters.init()
        /home/ubuntu/telegraf-build/src/github.com/influxdata/telegraf/plugins/i
nputs/win_perf_counters/win_perf_counters.go:332 +0x62
github.com/influxdata/telegraf/plugins/inputs/all.init()
        /home/ubuntu/telegraf-build/src/github.com/influxdata/telegraf/plugins/i
nputs/all/all.go:79 +0x18b
main.init()
        /home/ubuntu/telegraf-build/src/github.com/influxdata/telegraf/cmd/teleg
raf/telegraf.go:323 +0x85

Additional info:

I dug around and it looks like the line /home/ubuntu/telegraf-build/src/github.com/lxn/win/opengl32.go:117 is trying to load a "opengl32.dll" which I'm guessing is a windows drawing component that doesn't ship with server core installations. Maybe a new interface for querying the performance counters can be used that doesn't put any dependencies on features not required for querying?

Metadata

Metadata

Assignees

Labels

bugunexpected problem or unintended behaviorhelp wantedRequest for community participation, code, contributionpanicissue that results in panics from Telegrafplatform/windows

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions