Giter Site home page Giter Site logo

carbonator's People

Contributors

lhoworko avatar msmpeteclark avatar test-in-prod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

carbonator's Issues

A memory leak on Windows Server 2008 R2

Hello,
First of all, thanx for your good application. It works fine on my Win7 system.
Second, I've tested it on my Win Server 2008 and watching that the operation memory was filled during some days.
carbonator1
How can I fix it?

Encoding problem with cmd files

If I try to execute install-service.cmd I get in return the the message ´╗┐@echo off is either misspelled or unknown. Changing the encoding to ANSI via Notepad++ fixed it for me.

path child require uniq name?

I found something interesting, not sure if its a known bug, I don't see any one complains about this, so I'm not sure if its known bug or bug only exist on my setup. I'm using Windows 2003 with pre-compiled v1.6-debug on .NET 4.0, since missing just-in-time debug module, the program just gave warning and stop there. it seems the last string in the "path" has to be a unique name, not even if its a variable like "%COUNTER_INSTANCE%".

*= This will work, because 'a74' and 'a75' making the path become an unique path name *

<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%.a74" category="System" counter="File Write Bytes/sec" instance="" />
<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%.a75" category="System" counter="Threads" instance="" />

*= This will work, because after adding 'x1' and 'x2' are path becomes a "unique" name *

<add path="test.%HOST%.x1.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%" category="System" counter="File Write Bytes/sec" instance="" />
<add path="test.%HOST%.x2.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%" category="System" counter="Threads" instance="" />

= This will fail, i guess because "%COUNTER_INSTANCE%" already been used, even the variables here means "File Write Bytes/sec" and "Threads", but it seems Carbonator see it has duplicated string and report warning.

<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%" category="System" counter="File Write Bytes/sec" instance="" />
<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%" category="System" counter="Threads" instance="" />

= This will fail TOO, since 'a74' has already been use in first line

<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%.a74" category="System" counter="File Write Bytes/sec" instance="" />
<add path="test.%HOST%.%COUNTER_CATEGORY%.%COUNTER_NAME%.%COUNTER_INSTANCE%.a74" category="System" counter="Threads" instance="" />

Is this still under dev? Q about Config Dir?

So I'm not new to building applications using VS.

I ran the build, and as your instructions states, it puts all the binaries in the /release folder. Great.

I can run Crypton.Carbonator.exe --console --verbose and I will see minimal stats populating.

Where I"m confused is when you state "/configuration/carbonator/graphite" folder. Where is this folder? It wasn't built when I compiled. the closest I get is the files from this REPO which are /config/FILE.cs, etc. I see the crypton.carbonator.exe.config file in the root dir, but no .XML files.

What am I missing?

False 0 of Hyper-V Virtual Storage Device - Read(Write) Operations/Sec counters

Hello,
Thank you for this software, it's really useful. Please help with issue below.
I ran Carbonator on a hypervisor - Windows server 2012r2 sp1, hyper-v 6.3.9600 and it properly collects a lot of metrics except two of them

category="Hyper-V Virtual Storage Device" counter="Read Operations/Sec" instance=".+"
category="Hyper-V Virtual Storage Device" counter="Write Operations/Sec" instance=".+"

In carbonator.log I can see these counters was successfully loaded

2017-11-30 07:24:25[4] INFO  [CounterWatcher] loaded counter 'Write Operations/Sec' with instance D:-vm-example.vhdx in category 'Hyper-V Virtual Storage Device' for metric path windows.hosts.%HOST%.vhdx.%COUNTER_INSTANCE%.write_operations_sec

and I see that my graphite application obtains that data, but it's zero every time

(graphite)[graphite@graphite ~]$ slicecat ./[email protected]
[1512044700]    Thu Nov 30 07:25:00 2017        0.0
[1512044760]    Thu Nov 30 07:26:00 2017        0.0
[1512044820]    Thu Nov 30 07:27:00 2017        0.0
[1512044880]    Thu Nov 30 07:28:00 2017        0.0

It's actually false data, as I can see in perfmon.
image

At the same time I obtain very similar counters properly, for example:
category="Hyper-V Virtual Storage Device" counter="Read Bytes/sec" instance=".+"

Wildcard Instances - Null Counters

Is it possible for an option whereby counters will not load at startup if they are currently zero or null? Or if counters remain zero or null for a given period at startup? Period could perhaps could be defined in the config file? This could be as high at 5 minutes (or more) to allow time for counters to register some change. If no change, then counter is not loaded. Trade-off obviously being a reduction in start time.

Needs to be optional if it's known that a given counter is correctly at zero.

The service installer of the release Crypton.Carbonator-v1.5.zip is broken

Starting install-service.cmd on WIndows 8.1 returns the following error message (pardon the german, translation below):

C:\Users\X\Desktop\Carbonator.v1.5.Release>install-service.cmd
Microsoft (R) .NET Framework-Installationsprogramm, Version 4.0.30319.33440
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Beim Initialisieren der Installation ist eine Ausnahme aufgetreten:
System.IO.FileLoadException: Die Datei oder Assembly "file:///C:\Users\X\De
sktop\Carbonator.v1.5.Release\Crypton.Carbonator.exe" oder eine Abhängigkeit dav
on wurde nicht gefunden. Der Vorgang wird nicht unterstützt. (Ausnahme von HRESU
LT: 0x80131515)

Translation:
An exception occurred during initialisation of the installation: System.IO.FileLoadException: The file or Assembly "file:///C:\Users\X\Desktop\Carbonator.v1.5.Release\Crypton.Carbonator.exe" or one of its dependencies couldn't be found. This process is not supported. (exception from HRESU
LT: 0x80131515)

Compiling Carbonator using Visual Studio 2013 worked, though.

Selecting network interface counters

I would like to add performance counters for network interfaces, but it seems every server has a different NIC driver and NIC name. So the performance counters are for all intents and purposes, uniquely named. To my mind there are three ways forward

  1. Wildcard feature. Put in a "*" for instance, and it iterates through them all
  2. Some way of detecting the active NIC and using that instance
  3. As above, but checking for a NIC which is domain joined and using that instance

I found some useful code at the end of this post, it feels like it could be useful for this but it's a bit beyond my newbie C# kills to implement.

http://stackoverflow.com/questions/8657470/how-to-know-the-network-bandwidth-used-at-a-given-time#8666726

Compiled Carbonator require Visual Studio

I have a compiled Carbonator with nuget, and wish to put to other servers(Windows 2003), it was trying to look for VS just-in-time. I tried to run with or without console/verbose mode, it fails too.

Is there any way to disable just-in-time flag while compiling? Thanks.

Collection interval adjustment doesn't take configured interval into account.

The collection interval adjustment in CarbonatorInstance.cs:168 doesn't take configuration.carbonator.collectionInterval into account, instead subtracting the time spent collecting from 1000ms. This was missed when the collection interval was added to the config in 5a5fe6b.

Also, I don't understand why the due time is reset to 100ms. I'm seeing continual interval adjustments, resulting in up to 10 collections per second. Shouldn't the due time be set to the new collection interval, instead?

Finally, I don't see why the interval adjustment is needed at all or how it would result in more accurate data as claimed in the comment at CarbonatorInstance.cs:114. Please explain.

Thanks for your work on this. It's been a pleasure to use apart from the perplexing extra messages caused by the interval adjustment.

[Win 7] Build troubles

Hello!
I tried to use that for my Win7 laptop and got any troubles with building like below:

Log.cs(2,7): error CS0246: The type or namespace name 'log4net' could not be fo
und (are you missing a using directive or an assembly reference?) [C:\Program F
iles\Carbonator\Carbonator\Carbonator.csproj]
Log.cs(3,7): error CS0246: The type or namespace name 'log4net' could not be fo
und (are you missing a using directive or an assembly reference?) [C:\Program F
iles\Carbonator\Carbonator\Carbonator.csproj]
Log.cs(26,24): error CS0246: The type or namespace name 'ILog' could not be fou
nd (are you missing a using directive or an assembly reference?) [C:\Program Fi
les\Carbonator\Carbonator\Carbonator.csproj]

Unfortunatelly I'm very new with any compiling and stuck here. Could you please give any advice how to fix it?

Adding "*" Instances

Hi. I've just started looking at using Carbonator to ship perfmon data to ElasticSearch. We run many SQL databases on many SQL instances, so maintaining the configuration file with lots of individual counters is quite hard. Would it be possible to specify an instance of "*", a bit like in perfmon itself, and have Carbonator then create one report for each returned instance?

For example, if we have a changing number of drives, instead of this:

<counters>
  <add path="%HOST% LogicalDisk FreeSpace C" category="LogicalDisk" counter="% Free Space" instance="C:" />
  <add path="%HOST% LogicalDisk FreeSpace D" category="LogicalDisk" counter="% Free Space" instance="D:" />
  <add path="%HOST% LogicalDisk FreeSpace E" category="LogicalDisk" counter="% Free Space" instance="E:" />
  <add path="%HOST% LogicalDisk FreeSpace F" category="LogicalDisk" counter="% Free Space" instance="F:" />
</counters>

It would be nice to be able to specify this:

<counters>
  <add path="%HOST% LogicalDisk FreeSpace %INSTANCE%" category="LogicalDisk" counter="% Free Space" instance="*" />
</counters>

This would be especially useful on clusters, where the drives can move about from node to node.

Nano Server support

As it currently stands, carbonator appears to have issues installing on Nano Server due to the lack of installutil.

It also won't run because the builds from the releases page only run on 32 bit operating systems.

Are there any plans to rectify these issues to support Nano Server?

RegEx pattern support

Hi,

What level of RegEx support is there in the new wildcard functionality for loading instances? I'm trying to load all network adapters, but miss out those I know will just fill the database with null/bad data. So instead of .+ as per the example in the config file, I'm using:

.*^((?!.*6to4.*)(?!.*Local.*)(?!.*WAN.*)(?!.*isatap.*)(?!.*Kernel.*)(?!.*Test.*)).*(\n)

But it doesn't work. Not errors returned, but no data uploaded. I also tried without the (\n)

According to RegExr, this should work. Am I doing it wrong? Is there anything else I need to do? Or is this a case of there not been 100% support for RegEx?

Thanks!

chrome_2016-07-06_15-02-09

Regex replace for templating?

Hi!

I'm pulling in data from for example

Which works really nicely.

However the %COUNTER_INSTANCE% in this case might be
C__ClusterStorage_Volume14_VM_vhd

Is there anyway to get this to be placed in
carbonator.vm.cluster.%HOST%.VM.%COUNTER_INSTANCE%.StorageDevice.%COUNTER_NAME% ?

Also what would be a better way for doing the counter regex?
Ie I would only like to read the following counters
counter="Write Operations/Sec,Read Operations/Sec,Read Bytes/Sec,Write Bytes/Sec,Latency,Throughput"

Issue with metric value on non en_US systems

Hi,

First and before all, thank you for your work!

I've just done some tests, and found that on a french system, the metric value is sent to the graphite server using a comma instead of a dot, making it rejected.

Would it be possible to change this so that even on non en_US systems a dot would be used for metric?

Regards

Supporting statsd

Hey
I want to process the metric through statsd , and it is a bit complicated because we are using Hosted Graphite also to host statsd and they expose only UDP endpoint. So, I want to discuss does it something you would like to support (it also support a bit different message format) and how.

Thanks,
Omer

Adding support for domain name.

Firstly, just wanted to say what a fantastic project this is. I'm finding it very useful in our production environment.

Secondly, that I'm totally new to C# and GitHub, so bear with me!

We have multiple domains, often with same hostnames, so I added simple support for domains:

Inserted line 10
using System.DirectoryServices.ActiveDirectory;

Altered line 187 (188 after insert)
.Replace("%HOST%", Environment.MachineName).Replace("%DOMAIN%", Domain.GetComputerDomain().Name);

While this addition works perfectly, replacing %DOMAIN% with the name of the computers domain, it breaks when a server is not domain joined. So some exception handling is required which is currently beyond my skill level.

Any suggestions? (should I "pull" this?)

no data if () in counter""

\Логический диск()\Среднее время обращения к диску (с)
\Логический диск(
)\Среднее время чтения с диска (с)
\Логический диск()\Среднее время записи на диск (с)
\Логический диск(
)\Скорость обмена с диском (байт/с)
\Логический диск()\Скорость чтения с диска (байт/с)
\Логический диск(
)\Скорость записи на диск (байт/с)

NO data
...\Crypton.Carbonator-v1.5>Crypton.Carbonator.exe --console --verbose
[info] [StartCollection] Carbonator service loaded 1 watchers
Press any key to stop . . .
^C
..\Crypton.Carbonator-v1.5>Crypton.Carbonator.exe --console --verbose
[info] [StartCollection] Carbonator service loaded 1 watchers
Press any key to stop . . .

Нет данных если присутствуют скобки

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.