-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
5,782 additions
and
1,259 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,32 @@ | ||
vSphere2Metrics | ||
================ | ||
--- | ||
vSphere2Metrics is a performance metric collector for [vSphere](https://www.vmware.com/products/vsphere) that supports [Graphite](http://graphite.wikidot.com/) and [InfluxDB](https://influxdata.com/time-series-platform/influxdb/) as its storage engines. | ||
vSphere2Metrics is a performance metric collector for [vSphere](https://www.vmware.com/products/vsphere) that supports [Graphite](http://graphite.wikidot.com/) and [InfluxDB](https://influxdata.com/time-series-platform/influxdb/) as its storage engine. | ||
|
||
Essentially is gathers all the raw 20 second performance metrics from every the Hosts and VM’s registered in the vSphere. | ||
The main idea behind this project compared to others out there is, collect all and analyse later. | ||
|
||
So it gathers all the available 20 second raw performance metrics of every the Hosts, VM's and VSAN that are registered in the vSphere.<br /> | ||
Once the metrics have been collected and stored in your preferred storage engine there is no limits to which kind of performance analytics and dashboards you can construct. | ||
|
||
|
||
A Brief Overview of how vSphere2Metrics works: | ||
A brief overview of how vSphere2Metrics works: | ||
|
||
- Parallely connects to each of the specified vSphere servers (vcs.urls) | ||
- Gathers the last events and performance metrics samples (vcs.perf_max_samples) of all the registered Hosts and VMs | ||
- Simultaneously connects to each of the specified vSphere servers (vcs.urls) | ||
- Gathers the events and performance metrics samples (vcs.perf_max_samples) from the last successfully collected timestamp | ||
- Constructs the according Graphite or InfluxDB metrics | ||
- Sends the previously built and buffered metrics using MetricClient (destination.type) | ||
- If it fails, metrics get buffered until the next run, if not it just sleeps until the next execution (vcs.perf_max_samples) | ||
- The process start all over again | ||
- The process starts all over again | ||
|
||
|
||
## Features | ||
- Collects all [available metrics](http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.wssdk.apiref.doc/vim.PerformanceManager.html) concurrently ([GPars](http://gpars.codehaus.org)) | ||
- Metrics are buffered if the storage engines is down ([MetricClient](https://github.com/syepes/MetricClient)) | ||
- Connects to each vSphere concurrently ([GPars](http://gpars.codehaus.org)) | ||
- Collects all raw metrics from HostSystem, ResourcePool (QuickStats), VirtualMachine and VSAN Statistics | ||
- Metrics are buffered if the storage engine is down ([MetricClient](https://github.com/syepes/MetricClient)) | ||
- Supports Graphite Standard mode (UnCompressed) or Pickle (Serializing) | ||
- Supports InfluxDB HTTP UnCompressed or Compresses Line Protocol | ||
- Continues collection mode (daemon) or one shoot command line. | ||
- Supports vSphere 4.x, 5.x and 6.0 | ||
- Supports vSphere 4.x, 5.x and 6.x | ||
|
||
### Examples | ||
 | ||
|
@@ -44,11 +47,11 @@ And if you have the time clone this repo and submit a pull request to help impro | |
## License | ||
vSphere2Metrics is distributed under [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0). | ||
|
||
Copyright © 2016, [Sebastian YEPES F.](mailto:[email protected]) | ||
Copyright © 2017, [Sebastian YEPES F.](mailto:[email protected]) | ||
|
||
## Used open source projects | ||
[Groovy](http://groovy.codehaus.org) | | ||
[GPars](http://gpars.codehaus.org) | | ||
[Logback](http://logback.qos.ch) | | ||
[vijava](http://www.doublecloud.net/product/vijavang.php) | | ||
[yavijava](http://www.yavijava.com) | | ||
[MetricClient](https://github.com/syepes/MetricClient) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,27 @@ | ||
buildscript { | ||
dependencies { | ||
classpath 'org.kordamp.gradle:stats-gradle-plugin:0.1.+', | ||
classpath 'org.kordamp.gradle:stats-gradle-plugin:0.2.+', | ||
'com.github.jengelman.gradle.plugins:shadow:1.+' | ||
} | ||
} | ||
|
||
plugins { | ||
id "org.kordamp.gradle.stats" version "0.1.5" | ||
id "org.kordamp.gradle.stats" version "0.2.0" | ||
id 'groovy' | ||
id 'distribution' | ||
id 'com.github.johnrengelman.shadow' version '1.2.3' | ||
id 'com.github.johnrengelman.shadow' version '1.2.4' | ||
} | ||
|
||
def projectName = 'VSphere2Metrics' | ||
description = "$projectName - ESXi Performance Metric Integration with Graphite & InfluxDB" | ||
|
||
group = 'com.allthingsmonitoring.vmware.VSphere2Metrics' | ||
archivesBaseName = projectName | ||
archivesBaseName = projectName.toLowerCase() | ||
distsDirName = 'dist' | ||
version = '1.5.3' | ||
version = '1.6.0' | ||
|
||
def authorString = 'Sebastian YEPES FERNANDEZ ([email protected])' | ||
def copyrightString = 'Copyright © 2015 – Sebastian YEPES FERNANDEZ All Rights Reserved.' | ||
def copyrightString = 'Copyright © 2017 – Sebastian YEPES FERNANDEZ All Rights Reserved.' | ||
|
||
|
||
defaultTasks 'clean','shadowJar','groovydoc','distZip' | ||
|
@@ -49,12 +49,14 @@ compileJava { | |
|
||
repositories { | ||
mavenLocal() | ||
//maven { url 'http://oss.sonatype.org/content/groups/public/' } | ||
jcenter() | ||
mavenCentral() | ||
maven { url 'https://jitpack.io' } | ||
} | ||
|
||
dependencies { | ||
compile 'org.codehaus.groovy:groovy:2.+', | ||
'org.codehaus.groovy:groovy-json:2.+', | ||
'commons-cli:commons-cli:1.+', | ||
'org.slf4j:slf4j-api:1.+', | ||
'ch.qos.logback:logback-core:1.+', | ||
|
@@ -63,7 +65,8 @@ dependencies { | |
'net.sf.opencsv:opencsv:2.+', | ||
'com.xlson.groovycsv:groovycsv:1.+', | ||
'dom4j:dom4j:1.6.+', | ||
//'com.cloudbees.thirdparty:vijava:5.+', | ||
'com.github.syepes:MetricClient:master-SNAPSHOT', | ||
'com.github.yavijava:yavijava:vsphere_6.5-SNAPSHOT', | ||
fileTree(dir: 'libs', include: '*.jar') | ||
|
||
compile 'org.codehaus.jsr166-mirror:jsr166y:1.7.+' | ||
|
@@ -72,6 +75,7 @@ dependencies { | |
} | ||
|
||
groovyDoc 'org.codehaus.groovy:groovy-groovydoc:2.+', | ||
'org.codehaus.groovy:groovy-json:2.+', | ||
'org.codehaus.groovy:groovy-ant:2.+' | ||
|
||
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4', { | ||
|
@@ -90,17 +94,17 @@ groovydoc { | |
docTitle = "$projectName - v$project.version" | ||
header = "" | ||
footer = copyrightString | ||
overview "" | ||
|
||
link 'http://download.oracle.com/javase/6/docs/api/', 'java.' | ||
link 'http://download.oracle.com/javase/7/docs/api/', 'java.' | ||
link 'http://www.groovy-lang.org/api/', 'groovy.', 'org.codehaus.groovy.' | ||
link 'http://commons.apache.org/net/apidocs/', 'org.apache.commons.net.' | ||
} | ||
|
||
shadowJar { | ||
zip64 true | ||
group = 'shadow' | ||
classifier = '' | ||
classifier = null | ||
version = null | ||
|
||
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA' | ||
exclude 'META-INF/*.txt', 'META-INF/*.properties', '*.htm*', '*.properties' | ||
|
Oops, something went wrong.