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

Added input plugin for VMware vSphere. #4141

Merged
merged 118 commits into from
Sep 11, 2018
Merged
Show file tree
Hide file tree
Changes from 115 commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
2c8ffa9
Added vsphere input plugin.
prydin Sep 30, 2017
037983c
First "working" version of vsphere input plugin
prydin Sep 30, 2017
2ca7cf4
Optimizations of vSphere plugin.
prydin Oct 1, 2017
3f2e1b9
Performance improvements
prydin Oct 3, 2017
4985053
Use logrus instead of built-in log
prydin Oct 3, 2017
36a2826
Performance improvments.
prydin Oct 13, 2017
1aa1400
Merge branch 'master' into master
prydin Oct 15, 2017
0460ba8
Fixed premature destroy of performance manager
prydin Oct 17, 2017
26a104c
Merge remote-tracking branch 'origin/master'
prydin Oct 17, 2017
c9b1adf
Removed call to PerformanceManager.Destroy since it floods the vCente…
prydin Oct 18, 2017
748961a
Include name of parent in output.
prydin Oct 22, 2017
80c1bae
Reorganized code. Add parent as tag.
prydin Nov 6, 2017
50a7c94
Merge pull request #1 from prydin/pontus-reorg
prydin Nov 6, 2017
63c4a71
Merge branch 'master' of https://github.com/influxdata/telegraf
prydin Nov 6, 2017
dd804c3
Merge branch 'master' of https://github.com/prydin/telegraf
prydin Nov 6, 2017
a0f084b
changed Interval properties to durations
puckpuck Nov 14, 2017
ffed322
Merge pull request #2 from prydin/pierre
puckpuck Nov 14, 2017
313c89d
Started on concurrent object discovery. Not finished yet.
prydin Nov 15, 2017
f8355a2
use sync.WaitGroup to manage async
puckpuck Nov 15, 2017
db90cff
datastore, and instance context
puckpuck Nov 15, 2017
14ff78d
Run object discovery in the background.
prydin Nov 15, 2017
efac9b9
added gather_<category> properties
puckpuck Nov 17, 2017
bad3279
initial readme
puckpuck Nov 17, 2017
61d37c8
Initial commit of include/exclude. Basic testing done.
prydin Nov 17, 2017
ac72aca
Moved object ID maps to Endpoint.
prydin Nov 19, 2017
09e3c51
readme and datastore source name
puckpuck Nov 22, 2017
c8b616b
typo
puckpuck Nov 22, 2017
8a11e37
gauges and grammar
puckpuck Nov 22, 2017
213241b
parrallel on vSphere.init
puckpuck Nov 22, 2017
e2c211e
refactored endpoint, connection timeout
puckpuck Nov 25, 2017
d3acb40
timeout readmen
puckpuck Nov 25, 2017
98ad75b
connection reuse
puckpuck Nov 26, 2017
af648ac
Moved reference to c.Timeout in NewConnection. Now accessed after che…
prydin Nov 27, 2017
9d77d88
refactored client, fixed init
puckpuck Dec 2, 2017
bc716de
changed a log output debug
puckpuck Dec 2, 2017
d75ed27
full SSL support, objects_per_query default to 256
puckpuck Dec 7, 2017
718dfb2
typo + initial unit test commit
puckpuck Dec 10, 2017
950018f
refactored resources
puckpuck Feb 28, 2018
664e73b
Fixed 5m timing issue and point tags
puckpuck Mar 15, 2018
c87db2b
added cluster point tag to vm
puckpuck Mar 28, 2018
ce9dbb5
Added vsphere input plugin.
prydin Sep 30, 2017
c855efe
First "working" version of vsphere input plugin
prydin Sep 30, 2017
f2a8535
Optimizations of vSphere plugin.
prydin Oct 1, 2017
31bbcb2
Performance improvements
prydin Oct 3, 2017
43c2702
Use logrus instead of built-in log
prydin Oct 3, 2017
fcb5b44
Performance improvments.
prydin Oct 13, 2017
c1544b3
Fixed premature destroy of performance manager
prydin Oct 17, 2017
bb75063
Removed call to PerformanceManager.Destroy since it floods the vCente…
prydin Oct 18, 2017
3d66d86
Include name of parent in output.
prydin Oct 22, 2017
5276fe3
Reorganized code. Add parent as tag.
prydin Nov 6, 2017
fbda5c5
changed Interval properties to durations
puckpuck Nov 14, 2017
733294e
Merge branch 'master' of https://github.com/prydin/telegraf
Apr 13, 2018
270c411
Copied wavefront.go from upstream to fix merge issues.
Apr 13, 2018
a5c8ae2
Fixed thrift directory naming issues (copied from upstream)
Apr 13, 2018
7cfef91
Merge pull request #3 from prydin/pontus-concurrent-discovery
puckpuck Apr 13, 2018
29546ce
added guest to vm metrics
puckpuck May 1, 2018
580f8ed
go fmt
puckpuck May 1, 2018
17453ef
added tags
puckpuck May 1, 2018
7804845
updated govmomi to v0.17.1
puckpuck May 1, 2018
d780417
add check for when guest info is not available
puckpuck May 8, 2018
69e659d
Fixed a bug in the test harness causing it to fail
May 12, 2018
c7420af
Merge remote-tracking branch 'upstream/master'
prydin May 12, 2018
f318420
Fixed code broken by new handling of TLS config in core
prydin May 13, 2018
265fce0
Safer handling of mutexes
prydin May 14, 2018
ad003a9
Cleaned up credentials handling
prydin May 15, 2018
ca83bcc
Rewrote metric include/exclude functionality to look more Telegraf-li…
prydin May 16, 2018
90afda2
Fixed some vet issues
prydin May 17, 2018
41033f3
Optimized emission of metrics
prydin May 18, 2018
4cf70bb
Prevent from sending empty queries
prydin May 18, 2018
fceacc8
Prevent from sending empty queries part 2
prydin May 18, 2018
6661568
Added separator substitution
prydin May 18, 2018
96e9e42
Fixed datastore naming issue
prydin Jun 6, 2018
624e813
Cleaned up tag naming
prydin Jun 13, 2018
bb11db7
Changed comment to reflect new logic
prydin Jun 13, 2018
805a573
Removed race condition. Optimized discovery
prydin Jul 6, 2018
f0142f2
Removed race condition. Optimized discovery
prydin Jul 6, 2018
bae3aa2
Pre upstream merge
prydin Jul 6, 2018
7ff8fc6
Merge branch 'metric-naming-reorg'
prydin Jul 6, 2018
76a4d4f
Added Gopkg
prydin Jul 6, 2018
6856bb6
Fixed dependencies
prydin Jul 6, 2018
edeab7e
Merge branch 'master' of https://github.com/influxdata/telegraf
prydin Jul 7, 2018
b11e3a1
Added configuration parameter metric_count
prydin Jul 19, 2018
1e27ea1
Run chunk collection in goroutines
prydin Jul 19, 2018
b0d7677
Added collect_instance flags on resource types
prydin Jul 19, 2018
fedfa24
Allow background execution of first discovery
prydin Jul 20, 2018
2f4092f
Added concurrent discovery
prydin Jul 23, 2018
654135a
Collection chunking (#4)
prydin Jul 23, 2018
4f74ea3
Added workerpool.go for uniform handling of worker pools
prydin Jul 26, 2018
e79cc25
Merged from collection-chunking
prydin Jul 26, 2018
603993b
Logging timers and counters using the 'internal' plugin.
prydin Jul 28, 2018
3d791c1
Logging timers and counters using the 'internal' plugin.
prydin Jul 28, 2018
ca51e6c
Fixed Gopkg.lock issues
prydin Jul 31, 2018
2d54474
Graceful shutdown and reload
prydin Aug 2, 2018
3f583e7
Fixed questionable use of WaitGroup
prydin Aug 4, 2018
c2a2f57
Removed gather enabled flags and fixed delayed discovery bug
prydin Aug 4, 2018
321c511
Merge from upstream
prydin Aug 10, 2018
4c78eb8
Fixed Gopkg.lock
prydin Aug 10, 2018
ca5d2d8
Fixed failing test cases
prydin Aug 10, 2018
5bbb567
Added govmomi to Gopkg.lock
prydin Aug 10, 2018
573f325
Properly initialize plugin in test cases
prydin Aug 10, 2018
9539c3b
Fixed broken support for certs and CA chains
prydin Aug 14, 2018
84e5700
More efficient handling of vSphere clients
prydin Aug 15, 2018
82875f8
Prevent possible race at shutdown
prydin Aug 15, 2018
afe6125
Simplfied connection handling. Use 'source' as primary key
prydin Aug 16, 2018
2ece43e
Merged from upstream
prydin Aug 16, 2018
54a7f4d
Resolved potential race condition
prydin Aug 18, 2018
fafe93d
Added clarifying comment to ConcurrentWaitGroup.Wait(). Added clarify…
prydin Aug 21, 2018
457f686
Changes from second review
prydin Aug 29, 2018
bd4d623
Merge branch 'master' of https://github.com/influxdata/telegraf
prydin Aug 29, 2018
fa79c85
Added sample output
prydin Aug 30, 2018
a4f5990
updated readme and sample config
puckpuck Sep 1, 2018
e2e2040
force_discover_on_init default to false
puckpuck Sep 1, 2018
7370f23
Set ForceDiscoverOnInit to true in test to avoid false positives
prydin Sep 4, 2018
38b4ada
Merge branch 'master' of https://github.com/prydin/telegraf
prydin Sep 4, 2018
81f5e84
Fixed typo in default config
prydin Sep 4, 2018
238e015
Better error handling
prydin Sep 6, 2018
99d1111
RC1: Final tweaks and added datacenter tags
prydin Sep 11, 2018
c06edee
RC1.1: Fixed merge issue
prydin Sep 11, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,7 @@
[[override]]
source = "https://github.com/fsnotify/fsnotify/archive/v1.4.7.tar.gz"
name = "gopkg.in/fsnotify.v1"

[[constraint]]
name = "github.com/vmware/govmomi"
version = "0.18.0"
1 change: 1 addition & 0 deletions plugins/inputs/all/all.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ import (
_ "github.com/influxdata/telegraf/plugins/inputs/udp_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/unbound"
_ "github.com/influxdata/telegraf/plugins/inputs/varnish"
_ "github.com/influxdata/telegraf/plugins/inputs/vsphere"
_ "github.com/influxdata/telegraf/plugins/inputs/webhooks"
_ "github.com/influxdata/telegraf/plugins/inputs/win_perf_counters"
_ "github.com/influxdata/telegraf/plugins/inputs/win_services"
Expand Down
287 changes: 287 additions & 0 deletions plugins/inputs/vsphere/METRICS.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
# Common vSphere Performance Metrics
The set of performance metrics in vSphere is open ended. Metrics may be added or removed in new releases
and the set of available metrics may vary depending hardware, as well as what plugins and add-on products
are installed. Therefore, providing a definitive list of available metrics is difficult. The metrics listed
below are the most commonly available as of vSphere 6.5.

To list the exact set in your environment, please use the govc tool available [here](https://github.com/vmware/govmomi/tree/master/govc)

To obtain the set of metrics for e.g. a VM, you may use the following command:
```
govc metric.ls vm/*
```

## Virtual Machine Metrics
```
cpu.demandEntitlementRatio.latest
cpu.usage.average
cpu.ready.summation
cpu.run.summation
cpu.system.summation
cpu.swapwait.summation
cpu.costop.summation
cpu.demand.average
cpu.readiness.average
cpu.maxlimited.summation
cpu.wait.summation
cpu.usagemhz.average
cpu.latency.average
cpu.used.summation
cpu.overlap.summation
cpu.idle.summation
cpu.entitlement.latest
datastore.maxTotalLatency.latest
disk.usage.average
disk.read.average
disk.write.average
disk.maxTotalLatency.latest
mem.llSwapUsed.average
mem.swapin.average
mem.vmmemctltarget.average
mem.activewrite.average
mem.overhead.average
mem.vmmemctl.average
mem.zero.average
mem.swapoutRate.average
mem.active.average
mem.llSwapOutRate.average
mem.swapout.average
mem.llSwapInRate.average
mem.swapinRate.average
mem.granted.average
mem.latency.average
mem.overheadMax.average
mem.swapped.average
mem.compressionRate.average
mem.swaptarget.average
mem.shared.average
mem.zipSaved.latest
mem.overheadTouched.average
mem.zipped.latest
mem.consumed.average
mem.entitlement.average
mem.usage.average
mem.decompressionRate.average
mem.compressed.average
net.multicastRx.summation
net.transmitted.average
net.received.average
net.usage.average
net.broadcastTx.summation
net.broadcastRx.summation
net.packetsRx.summation
net.pnicBytesRx.average
net.multicastTx.summation
net.bytesTx.average
net.bytesRx.average
net.droppedRx.summation
net.pnicBytesTx.average
net.droppedTx.summation
net.packetsTx.summation
power.power.average
power.energy.summation
rescpu.runpk1.latest
rescpu.runpk15.latest
rescpu.maxLimited5.latest
rescpu.actpk5.latest
rescpu.samplePeriod.latest
rescpu.runav1.latest
rescpu.runav15.latest
rescpu.sampleCount.latest
rescpu.actpk1.latest
rescpu.runpk5.latest
rescpu.runav5.latest
rescpu.actav15.latest
rescpu.actav1.latest
rescpu.actpk15.latest
rescpu.actav5.latest
rescpu.maxLimited1.latest
rescpu.maxLimited15.latest
sys.osUptime.latest
sys.uptime.latest
sys.heartbeat.latest
virtualDisk.write.average
virtualDisk.read.average
```

## Host System Metrics
```
cpu.corecount.contention.average
cpu.usage.average
cpu.reservedCapacity.average
cpu.usagemhz.minimum
cpu.usagemhz.maximum
cpu.usage.minimum
cpu.usage.maximum
cpu.capacity.provisioned.average
cpu.capacity.usage.average
cpu.capacity.demand.average
cpu.capacity.contention.average
cpu.corecount.provisioned.average
cpu.corecount.usage.average
cpu.usagemhz.average
disk.throughput.contention.average
disk.throughput.usage.average
mem.decompressionRate.average
mem.granted.average
mem.active.average
mem.shared.average
mem.zero.average
mem.swapused.average
mem.vmmemctl.average
mem.compressed.average
mem.compressionRate.average
mem.reservedCapacity.average
mem.capacity.provisioned.average
mem.capacity.usable.average
mem.capacity.usage.average
mem.capacity.entitlement.average
mem.capacity.contention.average
mem.usage.minimum
mem.overhead.minimum
mem.consumed.minimum
mem.granted.minimum
mem.active.minimum
mem.shared.minimum
mem.zero.minimum
mem.swapused.minimum
mem.consumed.average
mem.usage.maximum
mem.overhead.maximum
mem.consumed.maximum
mem.granted.maximum
mem.overhead.average
mem.shared.maximum
mem.zero.maximum
mem.swapused.maximum
mem.vmmemctl.maximum
mem.usage.average
mem.active.maximum
mem.vmmemctl.minimum
net.throughput.contention.summation
net.throughput.usage.average
net.throughput.usable.average
net.throughput.provisioned.average
power.power.average
power.powerCap.average
power.energy.summation
vmop.numShutdownGuest.latest
vmop.numPoweroff.latest
vmop.numSuspend.latest
vmop.numReset.latest
vmop.numRebootGuest.latest
vmop.numStandbyGuest.latest
vmop.numPoweron.latest
vmop.numCreate.latest
vmop.numDestroy.latest
vmop.numRegister.latest
vmop.numUnregister.latest
vmop.numReconfigure.latest
vmop.numClone.latest
vmop.numDeploy.latest
vmop.numChangeHost.latest
vmop.numChangeDS.latest
vmop.numChangeHostDS.latest
vmop.numVMotion.latest
vmop.numSVMotion.latest
vmop.numXVMotion.latest
```

## Cluster Metrics
```
cpu.corecount.contention.average
cpu.usage.average
cpu.reservedCapacity.average
cpu.usagemhz.minimum
cpu.usagemhz.maximum
cpu.usage.minimum
cpu.usage.maximum
cpu.capacity.provisioned.average
cpu.capacity.usage.average
cpu.capacity.demand.average
cpu.capacity.contention.average
cpu.corecount.provisioned.average
cpu.corecount.usage.average
cpu.usagemhz.average
disk.throughput.contention.average
disk.throughput.usage.average
mem.decompressionRate.average
mem.granted.average
mem.active.average
mem.shared.average
mem.zero.average
mem.swapused.average
mem.vmmemctl.average
mem.compressed.average
mem.compressionRate.average
mem.reservedCapacity.average
mem.capacity.provisioned.average
mem.capacity.usable.average
mem.capacity.usage.average
mem.capacity.entitlement.average
mem.capacity.contention.average
mem.usage.minimum
mem.overhead.minimum
mem.consumed.minimum
mem.granted.minimum
mem.active.minimum
mem.shared.minimum
mem.zero.minimum
mem.swapused.minimum
mem.consumed.average
mem.usage.maximum
mem.overhead.maximum
mem.consumed.maximum
mem.granted.maximum
mem.overhead.average
mem.shared.maximum
mem.zero.maximum
mem.swapused.maximum
mem.vmmemctl.maximum
mem.usage.average
mem.active.maximum
mem.vmmemctl.minimum
net.throughput.contention.summation
net.throughput.usage.average
net.throughput.usable.average
net.throughput.provisioned.average
power.power.average
power.powerCap.average
power.energy.summation
vmop.numShutdownGuest.latest
vmop.numPoweroff.latest
vmop.numSuspend.latest
vmop.numReset.latest
vmop.numRebootGuest.latest
vmop.numStandbyGuest.latest
vmop.numPoweron.latest
vmop.numCreate.latest
vmop.numDestroy.latest
vmop.numRegister.latest
vmop.numUnregister.latest
vmop.numReconfigure.latest
vmop.numClone.latest
vmop.numDeploy.latest
vmop.numChangeHost.latest
vmop.numChangeDS.latest
vmop.numChangeHostDS.latest
vmop.numVMotion.latest
vmop.numSVMotion.latest
vmop.numXVMotion.latest
```

## Datastore Metrics
```
datastore.numberReadAveraged.average
datastore.throughput.contention.average
datastore.throughput.usage.average
datastore.write.average
datastore.read.average
datastore.numberWriteAveraged.average
disk.used.latest
disk.provisioned.latest
disk.capacity.latest
disk.capacity.contention.average
disk.capacity.provisioned.average
disk.capacity.usage.average
```
Loading