Skip to content

Commit

Permalink
Release of version 1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
syepes committed Apr 11, 2017
1 parent 2c72578 commit aa43c80
Show file tree
Hide file tree
Showing 16 changed files with 5,782 additions and 1,259 deletions.
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# [Unreleased]
- Added some Grafana templates (Graphite)

# 1.6.0 (2017-04-11)
- Changed the Graphite metric naming schema (breaking change)
- Disk naming are now the actual ID's (breaking change)
- Added Graphite and InfluxDB dumpMetrics output formats
- Added VSAN Stats (dom, dom-objects, lsom, disks)
- Added Resource Quick Stats
- Migrate to yavijava
- Self monitoring stats (prefix.vsphere2metrics)
- Added some example Grafana templates (Graphite)

# 1.5.3 (2016-04-01)
- Add timing metrics on the collecting methods
Expand Down
25 changes: 14 additions & 11 deletions README.md
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
![Perf Global](https://raw.githubusercontent.com/syepes/vSphere2Metrics/gh-pages/images/PerfGlobal.png)
Expand All @@ -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 &copy; 2016, [Sebastian YEPES F.](mailto:[email protected])
Copyright &copy; 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)
26 changes: 15 additions & 11 deletions build.gradle
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 &#169; 2015 &#8211; Sebastian YEPES FERNANDEZ All Rights Reserved.'
def copyrightString = 'Copyright &#169; 2017 &#8211; Sebastian YEPES FERNANDEZ All Rights Reserved.'


defaultTasks 'clean','shadowJar','groovydoc','distZip'
Expand Down Expand Up @@ -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.+',
Expand All @@ -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.+'
Expand All @@ -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', {
Expand All @@ -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'
Expand Down
Loading

0 comments on commit aa43c80

Please sign in to comment.