Flings
Apps and tools built by our engineers that are intended to be played with and explored.

StatsFeeder

StatsFeeder

Summary

Statsfeeder is a tool that enables performance metrics to be retrieved from vCenter and sent to multiple destinations, including 3rd party systems.

The goal of StatsFeeder is to make it easier to collect statistics in a scalable manner. The user specifies the statistics to be collected in an XML file, and StatsFeeder will collect and persist these stats. The default persistence mechanism is comma-separated values, but the user can extend it to persist the data in a variety of formats, including a standard relational database or Key-value store. StatsFeeder is written leveraging significant experience with the performance APIs, allow the metrics to be retrieved in the most efficient manner possible.

For more information on Statsfeeder it’s purpose and operation, please see the “VMware Technical Journal: Vol. 1″ where it is extensively described.

System Requirements

Pre-requisites:

JRE 1.6 or higher

Instructions

Overview:

StatsFeeder provides a set of Java classes for retrieving stats in a scalable manner for a given vSphere installation.
The statistics to be collected are specified in an .xml configuration file, along with the source vSphere entities and the destination. Instructions on how to edit the sample configuration file are provided within the file itself. To get you started we have included a sample configuration file called sampleConfig.xml, which has the following properties:

  • Output all statistics to a CSV file called output.csv
  • Provide statistics output every 10 minutes, and roll the output files every hour
  • Metrics are retrieve for real-time data over the vCenter inventory for both hosts and VMs. A basic set of metrics are specified

The package includes the .jar file, a sample .xml configuration file, a shell script for running StatsFeeder on Linux, and a .bat file for running StatsFeeder on Windows..
The .jar file includes classes for retrieving data and storing them to a .csv file.

To use StatsFeeder, you can simply use the shell script or .bat file directly (directions below in "How to run").

How to Run:

  1. Unzip the attached .zip file.
  2. Linux (or Cygwin on Windows): Execute command "StatsFeeder.sh -h [vcenterserver] -u [username] -p [password] -c [configfile]"
  3. Windows: Execute command "StatsFeeder.bat -h [vcenterserver] -u [username] -p [password] -c [configfile]"

Sample Invocations:

  1. StatsFeeder.sh -h 10.28.140.70 -u Administrator -p password -c sfconfig.xml
  2. StatsFeeder.bat -h my-vcenter-ip.vmware.com -u root -p "" -c pconfig.xml
  3. StatsFeeder.sh -h 10.28.140.47 -u guest -p guest -c /home/user/workspace/sfconfig.xml
  4. StatsFeeder.sh -h 10.28.140.147 -u Administrator -p password - csampleConfig.xml

Video

Change Log

Engineers


Ravi Soundararajan

Performance

Jon Cook

EcoSystem
Add Comment

50 thoughts on “StatsFeeder

  1. Jim DeWaard

    Ran into an issue with the Graphite receiver which I’m hoping others have found and fixed.

    When specifying a VirtualMachine as a single Entity, everything works great. But when specifying a container with VirtualMachines as a Child Type, the container name is added as a prefix within brackets. For instance, if the container is a folder called “Testing” with a VM inside called “server1″, the name of the node ends up being “[Testing]server1″ in Graphite/Whisper. Data seems to be written properly, but I can’t retrieve any of the metrics through Graphite browser (or Grafana). I’ve done some testing and I’m certain it’s due to the brackets. If I manually rename the folder to “server1″, I then can see all of the metrics.

    Is this expected behavior? Ideally, I would like to remove the container name entirely.

    Thanks again for the help!

    Reply
        1. Jim DeWaard

          OK, it has been submitted as an issue. Thanks again!

          I think it would be interesting to have the option to add the container to the graphite tree. The clear caveat is you could end up collecting duplicate data if the containers aren’t setup properly.

          For example:
          ……._<statistic_type

          Reply
  2. Jim DeWaard

    Hello. I’m a huge fan of this project and think there’s massive potential with pairing it with Graphite/Grafana. Thanks for the work!

    I’m seeing an issue where only a single instance of a metric is pulled. For instance, if I’m gathering “virtualDisk.read.average” stats and have 3 virtual disks attached to a VM, I only see the values associated with a single virtual disk. I thought it was an average of all disks, but the numbers don’t seem to work out. Is anyone else seeing this?

    Reply
    1. Jim DeWaard

      I was using an older snapshot of the SYNAXON Graphite Receiver. So I went and grabbed the latest snapshot from github. Everything seems to be working much better now. Thanks for the responses!

      Reply
  3. Toni Moreno

    hi to all.

    I would like to get source code of statsfeeder to hang it on github . In this way developers and other interested people could improve or build fixes is some bug appears.

    Could be possible?

    Reply
  4. Joshua

    Figured it out. Instance name has a “:” in it. We’ll have to replace that with a legal character before submitting the datapoints to kairosdb. Probably a “-” or “_” will work well. If you guys would like to implement that … it would be great. If I have a chance I’ll read through the code and submit a patch.

    POST /api/v1/datapoints HTTP/1.1
    Host: vcstats.gdl.englab.netapp.com:8080
    Content-Length: 1070

    [{“name”:”virtualDisk.numberReadAveraged.average”,”datapoints”:[[1425757000000,0],[1425757020000,0],[1425757040000,0],[1425757060000,0],[1425757080000,0],[1425757100000,0],[1425757120000,0],[1425757140000,0],[1425757160000,0],[1425757180000,0],[1425757200000,0],[1425757220000,0],[1425757240000,0],[1425757260000,0],[1425757280000,0],[1425757300000,0],[1425757320000,0],[1425757340000,0],[1425757360000,0],[1425757380000,0],[1425757400000,0],[1425757420000,0],[1425757440000,0],[1425757460000,0],[1425757480000,0],[1425757500000,0],[1425757520000,0],[1425757540000,0],[1425757560000,0],[1425757580000,0],[1425757600000,0],[1425757620000,0],[1425757640000,0],[1425757660000,0],[1425757680000,0],[1425757700000,0],[1425757720000,0],[1425757740000,0],[1425757760000,0],[1425757780000,0],[1425757800000,0],[1425757820000,0],[1425757840000,0],[1425757860000,0],[1425757880000,0]],”tags”:{“id”:”vm-739″,”unit”:”number”,”vcenter”:”8A05D2F1-AFE6-413E-827F-CC1C72089FCF”,”interval”:”20″,”container”:”GDL-DEV01″,”name”:”nisssqa2502″,”type”:”VirtualMachine”,”instance”:”scsi0:0″}}]HTTP/1.1 400 Bad Request
    Access-Control-Allow-Origin: *
    Content-Type: application/json
    Transfer-Encoding: chunked
    Server: Jetty(8.1.16.v20140903)

    95
    {“errors”:[“metric[0](name=virtualDisk.numberReadAveraged.average).tag[instance].value may contain any character except colon ‘:’, and equals ‘=’.”]}
    0

    Reply
  5. Joshua

    Having issues collecting virtualDisk statistics. The only ones that seem to work are the write and read average. Any way to get the rest of the stats?

    virtualDisk.write.average
    virtualDisk.smallSeeks.latest
    virtualDisk.largeSeeks.latest
    virtualDisk.writeLatencyUS.latest
    virtualDisk.readLoadMetric.latest
    virtualDisk.readLatencyUS.latest
    virtualDisk.totalWriteLatency.average
    virtualDisk.numberReadAveraged.average
    virtualDisk.read.average
    virtualDisk.writeIOSize.latest
    virtualDisk.readIOSize.latest
    virtualDisk.totalReadLatency.average
    virtualDisk.mediumSeeks.latest
    virtualDisk.writeOIO.latest
    virtualDisk.numberWriteAveraged.average
    virtualDisk.writeLoadMetric.latest
    virtualDisk.readOIO.latest

    Errors:
    106926 [Thread-584] ERROR com.vmware.ee.statsfeeder.kairosdb.KairosdbStatsReceiver – Error processing entity stats
    com.vmware.ee.statsfeeder.kairosdb.KairosdbException: Bad HTTP status 7
    at com.vmware.ee.statsfeeder.kairosdb.KairosdbClient.writeWithNesting(KairosdbClient.java:99)
    at com.vmware.ee.statsfeeder.kairosdb.KairosdbClient.write(KairosdbClient.java:48)
    at com.vmware.ee.statsfeeder.kairosdb.KairosdbStatsReceiver.receiveStats(KairosdbStatsReceiver.java:96)
    at com.vmware.ee.statsfeeder.StatsRetriever.onComplete(StatsRetriever.java:141)
    at com.vmware.ee.statsfeeder.StatsRetriever.access$300(StatsRetriever.java:24)
    at com.vmware.ee.statsfeeder.StatsRetriever$1.run(StatsRetriever.java:189)

    Reply
  6. Cristian Paul Peñaranda Rojas

    I’m having troubles getting stats from cluster:

    —————————–
    Managed entity: com.vmware.vim25.ManagedObjectReference@d91e466
    Current supported: false
    Refresh rate: -1
    Summary supported: true
    —————————–

    graphite
    Abc Cluster
    ClusterComputeResource
    300
    10

    cpu.usagemhz.average

    Btw if could provide or confirm that there is also support for Datastore type it will be usefull, i understand there is not.

    Reply
  7. Lava Kumar

    Dear StatsFeeder Owner / Developer,
    I have a question. Is GraphiteReceiver methods are synchronized? From configurations I understood that we could have multiple StatsRetrievers for receiving metrics from vSphere but will have a single GraphiteReceiver entity (Object) for serving all threads and has a unique GraphiteServer Connection.

    Though only one GraphiteReceiver object is created, i see multiple threads calling GraphiteReceiver::receiveStats() methods simultaneously and it is not synchronized. Please help me understand why GraphiteReceiver plug-in is not synchronized. Our requirement is that during metrics pull, based on metrics count I need to reset Graphite Server Connection but noticed synchronized error and not expected though.

    Reply
    1. Lava Kumar

      Hello Karl,
      Thanks for providing GraphiteReceiver plug-in for StatsFeeder. This helps us a lot. I have a favor to ask you. Where can I find StatsFeeder API definitions for extensions. Like you implemented “MetricsReceiver implements StatsListReceiver, StatsFeederListener, StatsExecutionContextAware”. I am interested looking at some of the features provided by StatsFeeder and interface APIs.

      Regards

      Lava

      Reply
  8. Nelson Jeppesen

    I second the request to add Graphite or InfluxDB support. That one feature would make this product very useful for our needs.

    Reply
  9. Olivier Dumas

    Hello,

    I encounter a strange error when I try to get perfdata for the virtualdisks of virtual machines. Il added the following lines to the config file:
    virtualdisk.totalreadlatency.average
    virtualdisk.totalwritelatency.average
    virtualdisk.read.average
    virtualdisk.write.average

    Yet, the information doesn’t come up. The debug log shows the following lines:
    com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.numberReadAveraged.average – 312
    378 [main] DEBUG com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.numberWriteAveraged.average – 313
    378 [main] DEBUG com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.read.average – 314
    378 [main] DEBUG com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.write.average – 315
    378 [main] DEBUG com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.totalReadLatency.average – 316
    378 [main] DEBUG com.vmware.ee.statsfeeder.CounterInfo – virtualDisk.totalWriteLatency.average – 317
    ….
    399 [main] WARN com.vmware.ee.statsfeeder.QuerySpecCache – Counter virtualdisk.totalreadlatency.average doesn’t exist………..
    400 [main] WARN com.vmware.ee.statsfeeder.QuerySpecCache – Counter virtualdisk.totalwritelatency.average doesn’t exist………..
    400 [main] WARN com.vmware.ee.statsfeeder.QuerySpecCache – Counter virtualdisk.read.average doesn’t exist………..
    400 [main] WARN com.vmware.ee.statsfeeder.QuerySpecCache – Counter virtualdisk.write.average doesn’t exist………..

    Seems the counter is retreived, but isn’t matched with the values from config file. I tried with all reasonable variables of case (virtualDisk, totalWriteLatency, etc.), to no avail.
    Any ideas ?

    Reply
  10. angus

    Hi,

    When configuring statsfeeder w/ kairosdb (using a cassandra backend), I get these errors:
    ERROR com.vmware.ee.statsfeeder.kairosdb.KairosdbStatsReceiver – Error processing entity stats

    using the kairosdb UI, i can see that my config.xml metrics (using the kairosdb receiver).

    Any idea?

    Reply
  11. Sajib

    Hi,

    I am facing problems while running the new version of the StatsFeeder (4.1.697). When I’m continuously running the statsfeeder for days, it’s stopping after a day or two by throwing similar connection error. Here is a snapshot of the error messages.

    25465543 [ContainerMonitor-Thread] ERROR com.vmware.ee.statsfeeder.ContainerMonitor – Unexpected Exception
    javax.xml.ws.WebServiceException: java.net.ConnectException: Connection refused: connect
    at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source)
    at com.sun.xml.internal.ws.client.Stub.process(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
    at com.sun.proxy.$Proxy35.waitForUpdatesEx(Unknown Source)
    at com.vmware.ee.statsfeeder.ContainerMonitor$RepeatingCheckContainersTask.run(ContainerMonitor.java:212)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
    at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
    … 17 more
    25466916 [ContainerMonitor-Thread] ERROR com.vmware.ee.statsfeeder.ContainerMonitor – Unexpected Exception
    com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection ref
    used: connect
    at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source)
    at com.sun.xml.internal.ws.client.Stub.process(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
    at com.sun.proxy.$Proxy35.waitForUpdatesEx(Unknown Source)
    at com.vmware.ee.statsfeeder.ContainerMonitor$RepeatingCheckContainersTask.run(ContainerMonitor.java:212)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
    at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
    … 16 more

    I did run the previous version for longer duration, but it didn’t crash. Can you please look into this issue and suggest something.

    Thanks a lot,
    Sajib

    Reply
  12. Omer

    Trying to collect data via using Statsfeeder into Kairosdb (Kairosdb is storing in HBase on top of hadoop HDFS):

    I got following error when trying to retrieve stats of a single host.:
    [Thread-2] ERROR com.vmware.ee.statsfeeder.kairosdb.kairsdbStatsReceiver – Error processing entity stats
    java.lang.ArrayIndexOutOfBoundsException: 2

    Any idea appreciated??

    Thanks
    Omer.

    Reply
  13. Ralf

    Hi Jon,

    Is there a way I can get my hands on the source code of the openTSDB or kairosdb receiver files?
    I’m in no way a Java developer but I do got some programming experience, so I guess I should be able to figure out how to write a custom receiver from these source files.

    Thank you.

    Reply
    1. Jon Cook

      Ralf,

      There should be an example in the package download, look in the sample directory. Giving out source could be problematic, although, I would like to consider open sourcing at some point but have to go through the VMware process.

      Let me know if you have specific questions.

      Jon

      Reply
      1. Ralf

        Hi Jon,

        Still looking for the source code, not only for the plugins. I would like to do some conversions to the actual RDM Lun or Datastore names instead of using the naa. disk id.

        Reply
  14. Ralf

    Hi,

    According to the README included with the .zip file, you need to set these value’s for OpenTSDB and KariosDB.

    com.vmware.ee.statsfeeder.TsdbStatsReceiver for OpenTSDB.
    com.vmware.ee.statsfeeder.KairosdbStatsReceiver for KariosDB.

    Both of them produce error’s used this way.
    Guess it should be like below?

    com.vmware.ee.statsfeeder.opentsdb.TsdbStatsReceiver for OpenTSDB.
    com.vmware.ee.statsfeeder.kariosdb.KairosdbStatsReceiver for KariosDB.

    Reply
  15. Jon Cook

    All,

    I have posted a new version of Statsfeeder that fixes the following issues reported in the comments:

    1) CSV output files are ignored when using multiple receiver definitions
    2) Container MoRef list is truncated due to pagination issue

    Please let me know if you encounter any further issues.

    Regards,
    Jon

    Reply
  16. Sajib

    Hi,

    I’m having an issue when I am trying to use multiple receivers on the same config file. For example, I want to redirect all VM level data and all Host level data to separate CSV files. I defined two receivers, one for VMs and another for hosts. And inside the entities, I am changing the receivers values to pass it to different files. But, it is simply replicating the data, both the files contain values for VM level as well as host level. Am I doing something wrong here? Thanking you in advance for your help.

    Here is the relevant portion of the config xml:

    HostOutput
    com.vmware.ee.statsfeeder.CSVFileStatsReceiver

    file
    hostoutput.csv

    VMOutput
    com.vmware.ee.statsfeeder.CSVFileStatsReceiver

    file
    vmoutput.csv

    HostOutput

    vCenter
    Folder

    HostSystem

    VMOutput

    vCenter
    Folder

    VirtualMachine

    Reply
  17. cortex

    Hi,

    I have a strange issue when running StatsFeeder on a Folder container. The folder actually contains 479 VirtualMachine but StatsFeeder only retrieve stats for 79 of them. It seems many of them gets filtered but I can’t figure out why.
    Some relevant debug traces :
    5 [main] INFO com.vmware.ee.statsfeeder.MOREFRetriever – entityNameSet size: 0
    195 [main] DEBUG com.vmware.ee.statsfeeder.MOREFRetriever – MOR Type: Datacenter
    196 [main] DEBUG com.vmware.ee.statsfeeder.MOREFRetriever – Entity Name: TEST
    196 [main] DEBUG com.vmware.ee.statsfeeder.MOREFRetriever – MOR Type: Datacenter
    854 [main] INFO com.vmware.ee.statsfeeder.MOREFRetriever – Number of MOREFs in the container: 79
    1173 [ContainerMonitor-Thread] DEBUG com.vmware.ee.statsfeeder.ContainerMonitor – Size—- : 479
    2049 [ContainerMonitor-Thread] DEBUG com.vmware.ee.statsfeeder.ContainerMonitor – ************ names size: 79

    Reply
    1. cortex

      I finally found why.
      You have a bug in MOREFRetriever.getNameMOREFMap where the retVal Map is new’ed in the do while. So if retrievePropertiesEx as more than one “page” to retrieve, previous collected results are gone. Only the entityNameDetailsMap is full. That’s why the number are different for those two Lists.
      Could you provide an update to fix that ?

      Reply
  18. Jon Cook

    We have pushed a new version of StatsFeeder to Labs. Included in this release are the following items:

    1) Support for additional receivers, Perfmon, OpenTSDB, and KairosDB.
    2) Sample Receiver project to allow creation of custom receivers.

    Documentation is provided within the package README.

    Any feedback appreciated.

    Reply
    1. Jon Cook

      Richard,

      I am about to release a new version where I will document the extension API available. Also, it will have support for perfomon, opentsdb and kairosdb. Just waiting for final approvals to push.

      Jon

      Reply
  19. NiTRo

    Hi Guys, could you tell how use the mysql receiver ?
    Do you plan to plan to add the moref in case some items have the same name ?
    Thanks

    Reply
  20. Jon Cook

    Erich,

    Thanks for the questions. I have a number of requests to allow the output format of StatsFeeder to be customized, either for different CSV formats or even to push data elsewhere. This is very possible. Certainly the ability to add headers to the CSV is a change I can make in short order, I am also looking to create a generic mechanism to change the format of the CSV. However, I also plan to expose an API here shortly , probably before I make the code changes for CSV, so you can write your own output adapter to anything you want. Seems potentially simpler than having me write different variants.

    Stay tuned.
    Jon

    Reply
    1. Erich Popp

      Hi Jon,

      thanks for this “pre-insight” to actual work.

      Where do i find informations about different output formats?

      I didn’t find anything about this topics in available documentation.

      Do i need to look into source code?

      regards
      Erich

      Reply
  21. Erich Popp

    Hi,

    first of all: working and a good way to select metrics (you should now which metrics) before collecting

    What i like to know or to recommend:
    how to analyze with tools like powershell?
    is it possible to output available metrics?
    is it possible to create column headers with statsfeeder? (it’s more convenient for import-csv cmdlet)

    Erich

    Reply
  22. Jon Cook

    All entries in the CSV contain an entity type. The default configuration file is set to collect both VirtualMachine and HostSystem metrics. However, these are not sorted by type, so scan the entire output file for the entity type “HostSystem”, there should an entry for each host within the inventory.

    Jon

    Reply
  23. zoli

    Hi,

    I tried it with the attached sampleConfig.xml config file. It works, but in the result I cannot find any host related statistics. What is teh reason of this behavior?

    Reply
    1. Jon Cook

      All entries in the CSV contain an entity type. The default configuration file is set to collect both VirtualMachine and HostSystem metrics. However, these are not sorted by type, so scan the entire output file for the entity type “HostSystem”, there should an entry for each host within the inventory.

      Jon

      Reply
      1. zoli

        Unfortunately, no. But if I delete the virtualmachine childtype from the config file, then the script will collect the stats of the hosts correctly.

        Zoli

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>