From d11ce178ef788c99f20f910fa46cf2876c1d7347 Mon Sep 17 00:00:00 2001 From: Yoga Ramalingam Date: Mon, 8 Jun 2015 17:02:15 -0400 Subject: [PATCH] Initial commit --- .gitignore | 156 +++++++ LICENSE | 202 +++++++++ README.md | 5 + src/CollectdWinService.sln | 62 +++ src/CollectdWinService/Aggregator.cs | 181 ++++++++ src/CollectdWinService/AmqpPlugin.cs | 154 +++++++ src/CollectdWinService/CollectdWinService.cs | 64 +++ .../CollectdWinService.csproj | 173 +++++++ .../CollectdWinService.resx | 123 +++++ src/CollectdWinService/ConsolePlugin.cs | 45 ++ src/CollectdWinService/Histogram.cs | 127 ++++++ src/CollectdWinService/MetricsCollector.cs | 226 ++++++++++ .../MetricsConfiguration.cs | 424 ++++++++++++++++++ src/CollectdWinService/MetricsPlugin.cs | 103 +++++ src/CollectdWinService/PluginRegistry.cs | 64 +++ src/CollectdWinService/Program.cs | 54 +++ .../Properties/AssemblyInfo.cs | 39 ++ src/CollectdWinService/StatsdAggregator.cs | 191 ++++++++ src/CollectdWinService/StatsdListener.cs | 117 +++++ src/CollectdWinService/StatsdMetrics.cs | 262 +++++++++++ src/CollectdWinService/StatsdPlugin.cs | 115 +++++ src/CollectdWinService/TypesDB.cs | 196 ++++++++ src/CollectdWinService/Util.cs | 35 ++ .../WindowsPerformanceCounterPlugin.cs | 174 +++++++ src/CollectdWinService/app.config | 118 +++++ src/CollectdWinService/types.db | 261 +++++++++++ src/installer/CollectdWin.wixproj | 45 ++ src/installer/Product.wxs | 105 +++++ third-party/NLog.dll | Bin 0 -> 413696 bytes third-party/RabbitMQ.Client.dll | Bin 0 -> 567808 bytes 30 files changed, 3821 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 src/CollectdWinService.sln create mode 100644 src/CollectdWinService/Aggregator.cs create mode 100644 src/CollectdWinService/AmqpPlugin.cs create mode 100644 src/CollectdWinService/CollectdWinService.cs create mode 100644 src/CollectdWinService/CollectdWinService.csproj create mode 100644 src/CollectdWinService/CollectdWinService.resx create mode 100644 src/CollectdWinService/ConsolePlugin.cs create mode 100644 src/CollectdWinService/Histogram.cs create mode 100644 src/CollectdWinService/MetricsCollector.cs create mode 100644 src/CollectdWinService/MetricsConfiguration.cs create mode 100644 src/CollectdWinService/MetricsPlugin.cs create mode 100644 src/CollectdWinService/PluginRegistry.cs create mode 100644 src/CollectdWinService/Program.cs create mode 100644 src/CollectdWinService/Properties/AssemblyInfo.cs create mode 100644 src/CollectdWinService/StatsdAggregator.cs create mode 100644 src/CollectdWinService/StatsdListener.cs create mode 100644 src/CollectdWinService/StatsdMetrics.cs create mode 100644 src/CollectdWinService/StatsdPlugin.cs create mode 100644 src/CollectdWinService/TypesDB.cs create mode 100644 src/CollectdWinService/Util.cs create mode 100644 src/CollectdWinService/WindowsPerformanceCounterPlugin.cs create mode 100644 src/CollectdWinService/app.config create mode 100644 src/CollectdWinService/types.db create mode 100644 src/installer/CollectdWin.wixproj create mode 100644 src/installer/Product.wxs create mode 100644 third-party/NLog.dll create mode 100644 third-party/RabbitMQ.Client.dll diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1bc915c --- /dev/null +++ b/.gitignore @@ -0,0 +1,156 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +!packages/*/build/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + + +#LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac desktop service store files +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..cd38f32 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +#CollectdWin + +CollectdWin is a MS Windows service which collects, aggregates and publishes both application and system metrics periodically. These application and system metrics can be used for performance analysis and capacity planning. CollectdWin is very similar to Collectd (https://collectd.org), it was developed because Collectd doesnot support Windows. + +For more info, refer [CollectdWin docs](../../wiki) diff --git a/src/CollectdWinService.sln b/src/CollectdWinService.sln new file mode 100644 index 0000000..6ef06c5 --- /dev/null +++ b/src/CollectdWinService.sln @@ -0,0 +1,62 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CollectdWinService", "CollectdWinService\CollectdWinService.csproj", "{D4244E6B-84EC-41A0-96A7-4F489F6098BC}" +EndProject +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "CollectdWin", "installer\CollectdWin.wixproj", "{93CC9E80-B6F5-4768-998E-889BDF5AB579}" + ProjectSection(ProjectDependencies) = postProject + {D4244E6B-84EC-41A0-96A7-4F489F6098BC} = {D4244E6B-84EC-41A0-96A7-4F489F6098BC} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|Mixed Platforms.Deploy.0 = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x64.ActiveCfg = Debug|x64 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x64.Build.0 = Debug|x64 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x64.Deploy.0 = Debug|x64 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x86.ActiveCfg = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x86.Build.0 = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Debug|x86.Deploy.0 = Debug|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|Any CPU.Build.0 = Release|Any CPU + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|Mixed Platforms.Build.0 = Release|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|x64.ActiveCfg = Release|x64 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|x64.Build.0 = Release|x64 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|x86.ActiveCfg = Release|x86 + {D4244E6B-84EC-41A0-96A7-4F489F6098BC}.Release|x86.Build.0 = Release|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|Any CPU.ActiveCfg = Debug|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|x64.ActiveCfg = Debug|x64 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|x64.Build.0 = Debug|x64 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|x86.ActiveCfg = Debug|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Debug|x86.Build.0 = Debug|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|Any CPU.ActiveCfg = Release|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|Mixed Platforms.Build.0 = Release|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|x64.ActiveCfg = Release|x64 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|x64.Build.0 = Release|x64 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|x86.ActiveCfg = Release|x86 + {93CC9E80-B6F5-4768-998E-889BDF5AB579}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/CollectdWinService/Aggregator.cs b/src/CollectdWinService/Aggregator.cs new file mode 100644 index 0000000..6cc5c76 --- /dev/null +++ b/src/CollectdWinService/Aggregator.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class CacheEntry + { + public MetricValue MetricRate; + public double[] RawValues; + + public CacheEntry(MetricValue metricValue) + { + MetricRate = metricValue; + RawValues = (double[]) metricValue.Values.Clone(); + } + } + + internal class Aggregator + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly Dictionary _cache; + private readonly Object _cacheLock; + private readonly bool _storeRates; + private readonly int _timeoutSeconds; + + public Aggregator(int timeoutSeconds, bool storeRates) + { + _cache = new Dictionary(); + _cacheLock = new Object(); + _timeoutSeconds = timeoutSeconds; + _storeRates = storeRates; + } + + public void Aggregate(ref MetricValue metricValue) + { + // If rates are not stored then there is nothing to aggregate + if (!_storeRates) + { + return; + } + IList dsl = DataSetCollection.Instance.GetDataSource(metricValue.TypeName); + if (dsl == null || metricValue.Values.Length != dsl.Count) + { + return; + } + + double now = Util.GetNow(); + + lock (_cacheLock) + { + CacheEntry cEntry; + string key = metricValue.Key(); + + if (!(_cache.TryGetValue(key, out cEntry))) + { + cEntry = new CacheEntry(metricValue.DeepCopy()); + for (int i = 0; i < metricValue.Values.Length; i++) + { + if (dsl[i].Type == DsType.Derive || + dsl[i].Type == DsType.Absolute || + dsl[i].Type == DsType.Counter) + { + metricValue.Values[i] = double.NaN; + cEntry.MetricRate.Values[i] = double.NaN; + } + } + cEntry.MetricRate.Epoch = now; + _cache[key] = cEntry; + return; + } + for (int i = 0; i < metricValue.Values.Length; i++) + { + double rawValNew = metricValue.Values[i]; + double rawValOld = cEntry.RawValues[i]; + double rawValDiff = rawValNew - rawValOld; + double timeDiff = cEntry.MetricRate.Epoch - now; + + double rateNew = rawValDiff/timeDiff; + + switch (dsl[i].Type) + { + case DsType.Gauge: + // no rates calculations are done, values are stored as-is for gauge + cEntry.RawValues[i] = rawValNew; + cEntry.MetricRate.Values[i] = rawValNew; + break; + + case DsType.Absolute: + // similar to gauge, except value will be divided by time diff + cEntry.MetricRate.Values[i] = metricValue.Values[i]/timeDiff; + cEntry.RawValues[i] = rawValNew; + metricValue.Values[i] = cEntry.MetricRate.Values[i]; + break; + + case DsType.Derive: + cEntry.RawValues[i] = rawValNew; + cEntry.MetricRate.Values[i] = rateNew; + metricValue.Values[i] = rateNew; + + break; + + case DsType.Counter: + // Counters are very simlar to derive except when counter wraps around + if (rawValNew < rawValOld) + { + // counter has wrapped around + cEntry.MetricRate.Values[i] = metricValue.Values[i]/timeDiff; + cEntry.RawValues[i] = rawValNew; + metricValue.Values[i] = cEntry.MetricRate.Values[i]; + } + else + { + cEntry.MetricRate.Values[i] = rateNew; + cEntry.RawValues[i] = rawValNew; + metricValue.Values[i] = rateNew; + } + break; + } + + // range checks + if (metricValue.Values[i] < dsl[i].Min) + { + metricValue.Values[i] = dsl[i].Min; + cEntry.RawValues[i] = metricValue.Values[i]; + } + if (metricValue.Values[i] > dsl[i].Max) + { + metricValue.Values[i] = dsl[i].Max; + cEntry.RawValues[i] = metricValue.Values[i]; + } + + cEntry.MetricRate.Epoch = now; + _cache[key] = cEntry; + } + } + } + + public void RemoveExpiredEntries() + { + // If rates are not stored then there is nothing to remove + if (!_storeRates) + { + return; + } + double now = Util.GetNow(); + double expirationTime = now - _timeoutSeconds; + var removeList = new List(); + + lock (_cacheLock) + { + removeList.AddRange(from pair in _cache + let cEntry = pair.Value + where cEntry.MetricRate.Epoch < expirationTime + select pair.Key); + if (removeList.Count > 0) + Logger.Debug("Removing expired entries: {0}", removeList.Count); + foreach (string key in removeList) + { + _cache.Remove(key); + } + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/AmqpPlugin.cs b/src/CollectdWinService/AmqpPlugin.cs new file mode 100644 index 0000000..7fe8229 --- /dev/null +++ b/src/CollectdWinService/AmqpPlugin.cs @@ -0,0 +1,154 @@ +using System; +using System.Configuration; +using System.Text; +using NLog; +using RabbitMQ.Client; + +namespace BloombergFLP.CollectdWin +{ + internal class AmqpPlugin : IMetricsWritePlugin + { + private const int ConnectionRetryDelay = 60; // 1 minute + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly Object _connectionLock; + private IModel _channel; + private bool _connected; + private IConnection _connection; + private string _exchange; + private double _lastConnectTime; + private string _routingKeyPrefix; + private string _url; + + public AmqpPlugin() + { + _connected = false; + _lastConnectTime = 0; + _connectionLock = new object(); + } + + public void Configure() + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + throw new Exception("Cannot get configuration section : CollectdWinConfig"); + } + + string user = config.Amqp.Publish.User; + string password = config.Amqp.Publish.Password; + string host = config.Amqp.Publish.Host; + int port = config.Amqp.Publish.Port; + string vhost = config.Amqp.Publish.VirtualHost; + + _url = "amqp://" + user + ":" + password + "@" + host + ":" + port + "/" + vhost; + _exchange = config.Amqp.Publish.Exchange; + _routingKeyPrefix = config.Amqp.Publish.RoutingKeyPrefix; + Logger.Info("Amqp plugin configured"); + } + + public void Start() + { + Logger.Trace("Start() begin."); + StartConnection(); + Logger.Info("Amqp plugin started"); + } + + public void Stop() + { + Logger.Trace("CloseConnection() begin"); + CloseConnection(); + Logger.Info("Amqp plugin stopped"); + } + + public void Write(MetricValue metric) + { + if (metric == null) + { + Logger.Debug("write() - Invalid null metric"); + return; + } + if (!_connected) + StartConnection(); + if (_connected && _channel != null) + { + string routingKey = GetAmqpRoutingKey(metric); + string message = metric.GetMetricJsonStr(); + try + { + _channel.BasicPublish(_exchange, routingKey, null, Encoding.UTF8.GetBytes(message)); + } + catch + { + CloseConnection(); + } + } + } + + public void StartConnection() + { + double now = Util.GetNow(); + if (now < (_lastConnectTime + ConnectionRetryDelay)) + { + return; + } + lock (_connectionLock) + { + try + { + var cf = new ConnectionFactory {Uri = _url}; + _connection = cf.CreateConnection(); + _channel = _connection.CreateModel(); + + _connected = true; + _lastConnectTime = Util.GetNow(); + Logger.Debug("Connection started."); + } + catch (Exception exp) + { + Logger.Error("Got exception when connecting to AMQP broker : ", exp); + } + } + } + + public void CloseConnection() + { + lock (_connectionLock) + { + try + { + _channel.Close(); + _connection.Close(); + Logger.Debug("Connection closed."); + } + catch (Exception exp) + { + Logger.Error("Got exception when closing AMQP connection : ", exp); + } + _connected = false; + } + } + + private string GetAmqpRoutingKey(MetricValue metric) + { + string routingKey = _routingKeyPrefix + "." + metric.HostName + "." + metric.PluginName + "." + + metric.PluginInstanceName + "." + metric.TypeName + "." + metric.TypeInstanceName; + + return (routingKey); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/CollectdWinService.cs b/src/CollectdWinService/CollectdWinService.cs new file mode 100644 index 0000000..2b5ded3 --- /dev/null +++ b/src/CollectdWinService/CollectdWinService.cs @@ -0,0 +1,64 @@ +using System.ServiceProcess; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + public class CollectdWinService : ServiceBase + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private MetricsCollector _metricsCollector; + + public CollectdWinService() + { + InitializeComponent(); + } + + protected override void OnStart(string[] args) + { + StartService(args); + } + + protected override void OnStop() + { + StopService(); + } + + private void InitializeComponent() + { + ServiceName = "Bloomberg Metrics Collector Service"; + } + + // public accessibility for running as a console application + public virtual void StartService(params string[] args) + { + Logger.Trace("StartService() begin"); + _metricsCollector = new MetricsCollector(); + _metricsCollector.ConfigureAll(); + _metricsCollector.StartAll(); + Logger.Trace("StartService() return"); + } + + // public accessibility for running as a console application + public virtual void StopService() + { + Logger.Trace("StopService() begin"); + _metricsCollector.StopAll(); + Logger.Trace("StopService() return"); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/CollectdWinService.csproj b/src/CollectdWinService/CollectdWinService.csproj new file mode 100644 index 0000000..83b3f17 --- /dev/null +++ b/src/CollectdWinService/CollectdWinService.csproj @@ -0,0 +1,173 @@ + + + + + Debug + AnyCPU + {D4244E6B-84EC-41A0-96A7-4F489F6098BC} + WinExe + Properties + BloombergFLP.CollectdWin + CollectdWinService + v3.5 + 512 + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 2 + 1.0.0.%2a + false + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + BF90C155A87E1D740767C321E58F1CEC4DC9C8C9 + + + MetricsCollectorService_TemporaryKey.pfx + + + false + + + true + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + LocalIntranet + + + + + ..\..\third-party\NLog.dll + + + ..\..\third-party\RabbitMQ.Client.dll + + + + + + + + + + + + + + + + + + Component + + + + + + + + + + + + + + + + CollectdWinService.cs + + + + + Designer + + + Always + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + + + \ No newline at end of file diff --git a/src/CollectdWinService/CollectdWinService.resx b/src/CollectdWinService/CollectdWinService.resx new file mode 100644 index 0000000..73afb87 --- /dev/null +++ b/src/CollectdWinService/CollectdWinService.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/src/CollectdWinService/ConsolePlugin.cs b/src/CollectdWinService/ConsolePlugin.cs new file mode 100644 index 0000000..2f2e16e --- /dev/null +++ b/src/CollectdWinService/ConsolePlugin.cs @@ -0,0 +1,45 @@ +using System; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class ConsolePlugin : IMetricsWritePlugin + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + public void Configure() + { + Logger.Info("console plugin configured"); + } + + public void Start() + { + Logger.Info("console plugin started"); + } + + public void Stop() + { + Logger.Info("console plugin stopped"); + } + + public void Write(MetricValue metric) + { + Console.WriteLine("ConsolePlugin: {0}", metric.GetMetricJsonStr()); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/Histogram.cs b/src/CollectdWinService/Histogram.cs new file mode 100644 index 0000000..941dda1 --- /dev/null +++ b/src/CollectdWinService/Histogram.cs @@ -0,0 +1,127 @@ +using System; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class Histogram + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly int[] _bins; + private readonly int _numBins; + private int _binSize; + private double _max; + private double _min; + private int _num; + private double _sum; + + public Histogram() + { + _min = _max = _sum = _num = 0; + _numBins = 100; + _bins = new int[100]; + _binSize = 8; + } + + private int GetBin(double val) + { + var bin = (int) (val/_binSize); + return (bin); + } + + public void Resize(double val) + { + double requiredBinSize = val/_numBins; + // to reduce frequent resizing, new bin size will be the the next nearest power of 2 + // eg: 16, 32, 64, 128, 256, 512, 1024, 2048, 5086 + var newBinSize = (int) Math.Pow(2, Math.Ceiling(Math.Log(requiredBinSize, 2))); + int oldBinSize = _binSize; + for (int i = 1; i < _numBins; i++) + { + val = i*oldBinSize; + int newBin = (int) val/newBinSize; + if (i == newBin) + continue; + _bins[newBin] += _bins[i]; + _bins[i] = 0; + } + _binSize = newBinSize; + Logger.Debug("Resize() - OldBinSize:{0} has been replaced with the NewBinSize:{1}", oldBinSize, newBinSize); + } + + public void AddValue(double val) + { + int bin = GetBin(val); + if (bin >= _numBins) + { + Resize(val); + bin = GetBin(val); + Logger.Debug("Got new bin:{0}", bin); + } + _bins[bin]++; + + _min = (_min > val) ? val : _min; + _max = (_max < val) ? val : _max; + _sum += val; + _num++; + } + + public double GetPercentile(float percent) + { + double percentUpper = 0; + double percentLower = 0; + double sum = 0; + + if (percent < 0 || percent > 100 || _num <= 0) + return (0); + + int i; + for (i = 0; i < _numBins; i++) + { + percentLower = percentUpper; + sum += _bins[i]; + percentUpper = 100*(sum/_num); + if (percentUpper >= percent) + break; + } + if (Math.Abs(percentUpper) < 0.01 || i >= _numBins) + return (0); + double valLower = i*_binSize; + double valUpper = (i + 1)*_binSize; + + double val = (((percentUpper - percent)*valLower) + ((percent - percentLower)*valUpper))/ + (percentUpper - percentLower); + + return (val); + } + + public void Reset() + { + _min = _max = _sum = _num = 0; + for (int i = 0; i < _numBins; i++) + _bins[i] = 0; + } + + public override string ToString() + { + String logstr = String.Format("Min:{0} Max:{1} Sum{2} Num{3}", _min, _max, _sum, _num); + for (int i = 0; i < _numBins; i++) + logstr += ", " + _bins[i]; + return (logstr); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/MetricsCollector.cs b/src/CollectdWinService/MetricsCollector.cs new file mode 100644 index 0000000..66f4a78 --- /dev/null +++ b/src/CollectdWinService/MetricsCollector.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using System.Threading; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class MetricsCollector + { + private const int MaxQueueSize = 30000; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly Aggregator _aggregator; + private readonly int _interval; + private readonly Queue _metricValueQueue; + private readonly IList _plugins; + private readonly Object _queueLock; + private readonly int _timeout; + private Thread _aggregatorThread; + private Thread _readThread; + private bool _runAggregatorThread; + private bool _runReadThread, _runWriteThread; + private Thread _writeThread; + + public MetricsCollector() + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + Logger.Error("Cannot get configuration section"); + return; + } + + _runReadThread = false; + _runWriteThread = false; + + var registry = new PluginRegistry(); + _plugins = registry.CreatePlugins(); + + _interval = config.GeneralSettings.Interval; + if (_interval <= 10) + _interval = 10; + + _timeout = config.GeneralSettings.Timeout; + if (_timeout <= _interval) + _timeout = _interval*3; + + bool storeRates = config.GeneralSettings.StoreRates; + + _aggregator = new Aggregator(_timeout, storeRates); + + _metricValueQueue = new Queue(); + _queueLock = new Object(); + } + + public void ConfigureAll() + { + Logger.Trace("ConfigureAll() begin"); + foreach (IMetricsPlugin plugin in _plugins) + plugin.Configure(); + Logger.Trace("ConfigureAll() return"); + } + + public void StartAll() + { + Logger.Trace("StartAll() begin"); + foreach (IMetricsPlugin plugin in _plugins) + plugin.Start(); + + _runWriteThread = true; + _writeThread = new Thread(WriteThreadProc); + _writeThread.Start(); + + _runReadThread = true; + _readThread = new Thread(ReadThreadProc); + _readThread.Start(); + + _runAggregatorThread = true; + _aggregatorThread = new Thread(AggregatorThreadProc); + _aggregatorThread.Start(); + Logger.Trace("StartAll() return"); + } + + public void StopAll() + { + Logger.Trace("StopAll() begin"); + _runReadThread = false; + _runWriteThread = false; + _runAggregatorThread = false; + + _readThread.Interrupt(); + _writeThread.Interrupt(); + _aggregatorThread.Interrupt(); + + foreach (IMetricsPlugin plugin in _plugins) + plugin.Stop(); + Logger.Trace("StopAll() end"); + } + + private void ReadThreadProc() + { + Logger.Trace("ReadThreadProc() begin"); + int numMetricsDropped = 0; + while (_runReadThread) + { + try + { + foreach (IMetricsPlugin plugin in _plugins) + { + var readPlugin = plugin as IMetricsReadPlugin; + if (readPlugin == null) + { + // skip if plugin is not a readplugin, it might be a writeplugin + continue; + } + IList metricValues = readPlugin.Read(); + if (metricValues == null || !metricValues.Any()) + continue; + lock (_queueLock) + { + foreach (MetricValue metric in metricValues) + { + _metricValueQueue.Enqueue(metric); + while (_metricValueQueue.Count >= MaxQueueSize) + { + // When queue size grows above the Max limit, + // old entries are removed + _metricValueQueue.Dequeue(); + if ((++numMetricsDropped%1000) == 0) + { + Logger.Error( + "Number of metrics dropped : {0}", + numMetricsDropped); + } + } + } + } + } + Thread.Sleep(_interval*1000); + } + catch (Exception exp) + { + Logger.Error("ReadThreadProc() got exception : ", exp); + } + } + Logger.Trace("ReadThreadProc() return"); + } + + private void WriteThreadProc() + { + Logger.Trace("WriteThreadProc() begin"); + while (_runWriteThread) + { + try + { + while (_metricValueQueue.Count > 0) + { + MetricValue metricValue = null; + lock (_queueLock) + { + if (_metricValueQueue.Count > 0) + metricValue = _metricValueQueue.Dequeue(); + } + if (metricValue != null) + { + metricValue.Interval = _interval; + + _aggregator.Aggregate(ref metricValue); + + foreach (IMetricsPlugin plugin in _plugins) + { + var writePlugin = plugin as IMetricsWritePlugin; + if (writePlugin == null) + { + // skip if plugin is not a writeplugin, it might be a readplugin + continue; + } + writePlugin.Write(metricValue); + } + } + } + Thread.Sleep(_interval*1000); + } + catch (Exception exp) + { + Logger.Error("WriteThreadProc() got exception : ", exp); + } + } + Logger.Trace("WriteThreadProc() return"); + } + + private void AggregatorThreadProc() + { + Logger.Trace("AggregatorThreadProc() begin"); + while (_runAggregatorThread) + { + try + { + _aggregator.RemoveExpiredEntries(); + Thread.Sleep(_timeout*1000); + } + catch (Exception exp) + { + Logger.Error("AggregatorThreadProc() got exception : ", exp); + } + } + Logger.Trace("AggregatorThreadProc() return"); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/MetricsConfiguration.cs b/src/CollectdWinService/MetricsConfiguration.cs new file mode 100644 index 0000000..9b88a0b --- /dev/null +++ b/src/CollectdWinService/MetricsConfiguration.cs @@ -0,0 +1,424 @@ +using System; +using System.Configuration; + +namespace BloombergFLP.CollectdWin +{ + internal class CollectdWinConfig : ConfigurationSection + { + [ConfigurationProperty("GeneralSettings", IsRequired = false)] + public GeneralSettingsConfig GeneralSettings + { + get { return (GeneralSettingsConfig) base["GeneralSettings"]; } + set { base["GeneralSettings"] = value; } + } + + [ConfigurationProperty("PluginRegistry", IsRequired = true)] + [ConfigurationCollection(typeof (PluginCollection), AddItemName = "Plugin")] + public PluginCollection PluginRegistry + { + get { return (PluginCollection) base["PluginRegistry"]; } + set { base["PluginRegistry"] = value; } + } + + [ConfigurationProperty("Statsd", IsRequired = false)] + public StatsdConfig Statsd + { + get { return (StatsdConfig) base["Statsd"]; } + set { base["Statsd"] = value; } + } + + [ConfigurationProperty("Amqp", IsRequired = false)] + public AmqpConfig Amqp + { + get { return (AmqpConfig) base["Amqp"]; } + set { base["Amqp"] = value; } + } + + [ConfigurationProperty("WindowsPerformanceCounters", IsRequired = false)] + public WindowsPerformanceCountersConfig WindowsPerformanceCounters + { + get { return (WindowsPerformanceCountersConfig) base["WindowsPerformanceCounters"]; } + set { base["WindowsPerformanceCounters"] = value; } + } + + public static CollectdWinConfig GetConfig() + { + return (CollectdWinConfig) ConfigurationManager.GetSection("CollectdWinConfig") ?? new CollectdWinConfig(); + } + + public sealed class AmqpConfig : ConfigurationElement + { + [ConfigurationProperty("Publish", IsRequired = false)] + public PublishConfig Publish + { + get { return (PublishConfig) base["Publish"]; } + set { base["Publish"] = value; } + } + + public sealed class PublishConfig : ConfigurationElement + { + [ConfigurationProperty("Name", IsRequired = true)] + public string Name + { + get { return (string) base["Name"]; } + set { base["Name"] = value; } + } + + [ConfigurationProperty("Host", IsRequired = false)] + public string Host + { + get { return (string) base["Host"]; } + set { base["Host"] = value; } + } + + [ConfigurationProperty("Port", IsRequired = true)] + public int Port + { + get { return (int) base["Port"]; } + set { base["Port"] = value; } + } + + [ConfigurationProperty("VirtualHost", IsRequired = false)] + public string VirtualHost + { + get { return (string) base["VirtualHost"]; } + set { base["VirtualHost"] = value; } + } + + [ConfigurationProperty("User", IsRequired = false)] + public string User + { + get { return (string) base["User"]; } + set { base["User"] = value; } + } + + [ConfigurationProperty("Password", IsRequired = false)] + public string Password + { + get { return (string) base["Password"]; } + set { base["Password"] = value; } + } + + [ConfigurationProperty("Exchange", IsRequired = false)] + public string Exchange + { + get { return (string) base["Exchange"]; } + set { base["Exchange"] = value; } + } + + [ConfigurationProperty("RoutingKeyPrefix", IsRequired = false)] + public string RoutingKeyPrefix + { + get { return (string) base["RoutingKeyPrefix"]; } + set { base["RoutingKeyPrefix"] = value; } + } + } + } + + public sealed class CounterConfig : ConfigurationElement + { + [ConfigurationProperty("Category", IsRequired = true)] + public string Category + { + get { return (string) base["Category"]; } + set { base["Category"] = value; } + } + + [ConfigurationProperty("Name", IsRequired = true)] + public string Name + { + get { return (string) base["Name"]; } + set { base["Name"] = value; } + } + + + [ConfigurationProperty("Instance", IsRequired = false)] + public string Instance + { + get { return (string) base["Instance"]; } + set { base["Instance"] = value; } + } + + [ConfigurationProperty("CollectdPlugin", IsRequired = true)] + public string CollectdPlugin + { + get { return (string) base["CollectdPlugin"]; } + set { base["CollectdPlugin"] = value; } + } + + [ConfigurationProperty("CollectdPluginInstance", IsRequired = false)] + public string CollectdPluginInstance + { + get { return (string) base["CollectdPluginInstance"]; } + set { base["CollectdPluginInstance"] = value; } + } + + [ConfigurationProperty("CollectdType", IsRequired = true)] + public string CollectdType + { + get { return (string) base["CollectdType"]; } + set { base["CollectdType"] = value; } + } + + [ConfigurationProperty("CollectdTypeInstance", IsRequired = true)] + public string CollectdTypeInstance + { + get { return (string) base["CollectdTypeInstance"]; } + set { base["CollectdTypeInstance"] = value; } + } + + [ConfigurationProperty("ScaleUpFactor", IsRequired = false)] + public uint ScaleUpFactor + { + get { return (uint) base["ScaleUpFactor"]; } + set { base["ScaleUpFactor"] = value; } + } + + [ConfigurationProperty("ScaleDownFactor", IsRequired = false)] + public uint ScaleDownFactor + { + get { return (uint) base["ScaleDownFactor"]; } + set { base["ScaleDownFactor"] = value; } + } + } + + public class CounterConfigCollection : ConfigurationElementCollection + { + protected override ConfigurationElement CreateNewElement() + { + return new CounterConfig(); + } + + protected override object GetElementKey(ConfigurationElement element) + { + var counterConfig = (CounterConfig) element; + return (counterConfig.Category + "_" + counterConfig.Name + "_" + counterConfig.Instance); + } + } + + public sealed class GeneralSettingsConfig : ConfigurationElement + { + [ConfigurationProperty("Interval", IsRequired = true)] + public int Interval + { + get { return (int) base["Interval"]; } + set { base["Interval"] = value; } + } + + [ConfigurationProperty("Timeout", IsRequired = true)] + public int Timeout + { + get { return (int) base["Timeout"]; } + set { base["Timeout"] = value; } + } + + [ConfigurationProperty("StoreRates", IsRequired = true)] + public bool StoreRates + { + get { return (bool) base["StoreRates"]; } + set { base["StoreRates"] = value; } + } + } + + public class PluginCollection : ConfigurationElementCollection + { + protected override ConfigurationElement CreateNewElement() + { + return new PluginConfig(); + } + + protected override object GetElementKey(ConfigurationElement element) + { + return (((PluginConfig) element).UniqueId); + } + } + + public sealed class PluginConfig : ConfigurationElement + { + public PluginConfig() + { + UniqueId = Guid.NewGuid(); + } + + internal Guid UniqueId { get; set; } + + [ConfigurationProperty("Name", IsRequired = true)] + public string Name + { + get { return (string) base["Name"]; } + set { base["Name"] = value; } + } + + [ConfigurationProperty("Class", IsRequired = true)] + public string Class + { + get { return (string) base["Class"]; } + set { base["Class"] = value; } + } + + [ConfigurationProperty("Enable", IsRequired = true)] + public bool Enable + { + get { return (bool) base["Enable"]; } + set { base["Enable"] = value; } + } + } + + public sealed class StatsdConfig : ConfigurationElement + { + [ConfigurationProperty("Host", IsRequired = false)] + public string Host + { + get { return (string) base["Host"]; } + set { base["Host"] = value; } + } + + [ConfigurationProperty("Port", IsRequired = true)] + public int Port + { + get { return (int) base["Port"]; } + set { base["Port"] = value; } + } + + [ConfigurationProperty("DeleteCache", IsRequired = true)] + public DeleteCacheConfig DeleteCache + { + get { return (DeleteCacheConfig) base["DeleteCache"]; } + set { base["DeleteCache"] = value; } + } + + [ConfigurationProperty("Timer", IsRequired = true)] + public TimerConfig Timer + { + get { return (TimerConfig) base["Timer"]; } + set { base["Timer"] = value; } + } + + public sealed class DeleteCacheConfig : ConfigurationElement + { + [ConfigurationProperty("Counters", IsRequired = true)] + public bool Counters + { + get { return (bool) base["Counters"]; } + set { base["Counters"] = value; } + } + + [ConfigurationProperty("Timers", IsRequired = true)] + public bool Timers + { + get { return (bool) base["Timers"]; } + set { base["Timers"] = value; } + } + + [ConfigurationProperty("Gauges", IsRequired = true)] + public bool Gauges + { + get { return (bool) base["Gauges"]; } + set { base["Gauges"] = value; } + } + + [ConfigurationProperty("Sets", IsRequired = true)] + public bool Sets + { + get { return (bool) base["Sets"]; } + set { base["Sets"] = value; } + } + } + + public class PercentileCollection : ConfigurationElementCollection + { + protected override ConfigurationElement CreateNewElement() + { + return new PercentileConfig(); + } + + protected override object GetElementKey(ConfigurationElement element) + { + return (((PercentileConfig) element).UniqueId); + } + } + + public sealed class PercentileConfig : ConfigurationElement + { + public PercentileConfig() + { + UniqueId = Guid.NewGuid(); + } + + internal Guid UniqueId { get; set; } + + [ConfigurationProperty("Value", IsRequired = true)] + public float Value + { + get { return (float) base["Value"]; } + set { base["Value"] = value; } + } + } + + public sealed class TimerConfig : ConfigurationElement + { + [ConfigurationProperty("Lower", IsRequired = true)] + public bool Lower + { + get { return (bool) base["Lower"]; } + set { base["Lower"] = value; } + } + + [ConfigurationProperty("Upper", IsRequired = true)] + public bool Upper + { + get { return (bool) base["Upper"]; } + set { base["Upper"] = value; } + } + + [ConfigurationProperty("Sum", IsRequired = true)] + public bool Sum + { + get { return (bool) base["Sum"]; } + set { base["Sum"] = value; } + } + + [ConfigurationProperty("Count", IsRequired = true)] + public bool Count + { + get { return (bool) base["Count"]; } + set { base["Count"] = value; } + } + + [ConfigurationProperty("Percentiles", IsRequired = false)] + [ConfigurationCollection(typeof (PercentileCollection), AddItemName = "Percentile")] + public PercentileCollection Percentiles + { + get { return (PercentileCollection) base["Percentiles"]; } + set { base["Percentiles"] = value; } + } + } + } + + public sealed class WindowsPerformanceCountersConfig : ConfigurationElement + { + [ConfigurationProperty("Counters", IsRequired = false)] + [ConfigurationCollection(typeof (CounterConfigCollection), AddItemName = "Counter")] + public CounterConfigCollection Counters + { + get { return (CounterConfigCollection) base["Counters"]; } + set { base["Counters"] = value; } + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/MetricsPlugin.cs b/src/CollectdWinService/MetricsPlugin.cs new file mode 100644 index 0000000..9d9aae6 --- /dev/null +++ b/src/CollectdWinService/MetricsPlugin.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal interface IMetricsPlugin + { + void Configure(); + void Start(); + void Stop(); + } + + internal interface IMetricsReadPlugin : IMetricsPlugin + { + IList Read(); + } + + internal interface IMetricsWritePlugin : IMetricsPlugin + { + void Write(MetricValue metric); + } + + internal class MetricValue + { + private const string MetricJsonFormat = + @"{{""host"":""{0}"", ""plugin"":""{1}"", ""plugin_instance"":""{2}""," + + @" ""type"":""{3}"", ""type_instance"":""{4}"", ""time"":{5}, ""interval"":{6}," + + @" ""dstypes"":[{7}], ""dsnames"":[{8}], ""values"":[{9}]}}"; + + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + public string HostName { get; set; } + public string PluginName { get; set; } + public string PluginInstanceName { get; set; } + public string TypeName { get; set; } + public string TypeInstanceName { get; set; } + + public int Interval { get; set; } + public double Epoch { get; set; } + public double[] Values { get; set; } + + public string Key() + { + return (HostName + "." + PluginName + "." + PluginInstanceName + "." + TypeName + "." + TypeInstanceName); + } + + public MetricValue DeepCopy() + { + var other = (MetricValue) MemberwiseClone(); + other.HostName = String.Copy(HostName); + other.PluginName = String.Copy(PluginName); + other.PluginInstanceName = String.Copy(PluginInstanceName); + other.TypeName = String.Copy(TypeName); + other.TypeInstanceName = String.Copy(TypeInstanceName); + other.Values = (double[]) Values.Clone(); + return (other); + } + + public string GetMetricJsonStr() + { + IList dsList = DataSetCollection.Instance.GetDataSource(TypeName); + var dsNames = new List(); + var dsTypes = new List(); + if (dsList == null) + { + Logger.Debug("Invalid type : {0}, not found in types.db", TypeName); + } + else + { + foreach (DataSource ds in dsList) + { + dsNames.Add(ds.Name); + dsTypes.Add(ds.Type.ToString().ToLower()); + } + } + string dsTypesStr = string.Join(",", dsTypes.ConvertAll(m => string.Format("\"{0}\"", m)).ToArray()); + string dsNamesStr = string.Join(",", dsNames.ConvertAll(m => string.Format("\"{0}\"", m)).ToArray()); + string valStr = string.Join(",", Array.ConvertAll(Values, val => val.ToString(CultureInfo.InvariantCulture))); + + string res = string.Format(MetricJsonFormat, HostName, PluginName, + PluginInstanceName, TypeName, TypeInstanceName, Epoch, + Interval, dsTypesStr, dsNamesStr, valStr); + return (res); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/PluginRegistry.cs b/src/CollectdWinService/PluginRegistry.cs new file mode 100644 index 0000000..bd78692 --- /dev/null +++ b/src/CollectdWinService/PluginRegistry.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class PluginRegistry + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly Dictionary _registry = new Dictionary(); + + public PluginRegistry() + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + Logger.Error("Cannot get configuration section"); + return; + } + foreach ( + CollectdWinConfig.PluginConfig pluginConfig in + config.PluginRegistry.Cast() + .Where(pluginConfig => pluginConfig.Enable)) + { + _registry[pluginConfig.Name] = pluginConfig.Class; + } + } + + public IList CreatePlugins() + { + IList plugins = new List(); + foreach (var entry in _registry) + { + Type classType = Type.GetType(entry.Value); + if (classType == null) + { + Logger.Error("Cannot create plugin:{0}, class:{1}", entry.Key, entry.Value); + continue; + } + var plugin = (IMetricsPlugin) Activator.CreateInstance(classType); + plugins.Add(plugin); + } + return (plugins); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/Program.cs b/src/CollectdWinService/Program.cs new file mode 100644 index 0000000..68911d4 --- /dev/null +++ b/src/CollectdWinService/Program.cs @@ -0,0 +1,54 @@ +using System; +using System.Configuration; +using System.ServiceProcess; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + public static class Program + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + /// + /// The main entry point for the application. + /// + public static void Main(string[] args) + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + Logger.Error("Main(): cannot get configuration section"); + return; + } + + var collectdWinService = new CollectdWinService(); + + if (Array.Find(args, s => s.Equals(@"/console")) != null) + { + // run as a console application for testing and debugging purpose + collectdWinService.StartService(); + } + else + { + // run as a windows service + ServiceBase[] servicesToRun = {collectdWinService}; + ServiceBase.Run(servicesToRun); + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/Properties/AssemblyInfo.cs b/src/CollectdWinService/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..94e3c02 --- /dev/null +++ b/src/CollectdWinService/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("CollectdWinService")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Bloomberg LP")] +[assembly: AssemblyProduct("CollectdWinService")] +[assembly: AssemblyCopyright("Copyright © Bloomberg LP 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("dc0404f4-acd7-40b3-ab7a-6e63f023ac40")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("0.5.1.0")] +[assembly: AssemblyFileVersion("0.5.1.0")] \ No newline at end of file diff --git a/src/CollectdWinService/StatsdAggregator.cs b/src/CollectdWinService/StatsdAggregator.cs new file mode 100644 index 0000000..d344d76 --- /dev/null +++ b/src/CollectdWinService/StatsdAggregator.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class StatsdAggregator + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly bool _delCounter; + private readonly bool _delGauge; + private readonly bool _delSet; + private readonly bool _delTimer; + private readonly string _hostName; + private readonly Object _lock; + private readonly Dictionary _metrics; + private readonly float[] _percentiles; + private readonly bool _timerCount; + private readonly bool _timerLower; + private readonly bool _timerSum; + private readonly bool _timerUpper; + + public StatsdAggregator(bool delCounter, bool delTimer, bool delGauge, bool delSet, bool timerLower, + bool timerUpper, bool timerSum, bool timerCount, float[] percentiles) + { + _lock = new Object(); + _metrics = new Dictionary(); + _hostName = Util.GetHostName(); + + _delCounter = delCounter; + _delTimer = delTimer; + _delGauge = delGauge; + _delSet = delSet; + + _timerLower = timerLower; + _timerUpper = timerUpper; + _timerSum = timerSum; + _timerCount = timerCount; + + _percentiles = percentiles; + + if (_percentiles != null && _percentiles.Length > 0) + StatsdMetric.Latency.HistogramEnabled = true; + else + StatsdMetric.Latency.HistogramEnabled = false; + + Logger.Info( + "Statsd config - delCounter:{0}, delTimer:{1}, delGauge:{2}, delSet:{3}, isHistogramEnabled:{4}", + _delCounter, _delTimer, _delGauge, _delSet, StatsdMetric.Latency.HistogramEnabled); + } + + public void AddMetric(StatsdMetric metric) + { + string key = metric.Type + "_" + metric.Name; + lock (_lock) + { + StatsdMetric oldMetric; + if (_metrics.TryGetValue(key, out oldMetric)) + { + //merge + double val = metric.Value; + oldMetric.AddValue(val); + } + else + { + _metrics[key] = metric; + } + } + } + + public IList Read() + { + lock (_lock) + { + var res = new List(); + var removeList = new List(); + foreach (var pair in _metrics) + { + StatsdMetric metric = pair.Value; + if (metric.NumUpdates <= 0 && + ((_delCounter && metric.Type == StatsdMetric.StatsdType.StatsdCounter) || + (_delTimer && metric.Type == StatsdMetric.StatsdType.StatsdTimer) || + (_delGauge && metric.Type == StatsdMetric.StatsdType.StatsdGauge) || + (_delSet && metric.Type == StatsdMetric.StatsdType.StatsdSet))) + { + removeList.Add(pair.Key); + continue; + } + var metricVal = new MetricValue + { + HostName = _hostName, + PluginName = "statsd", + PluginInstanceName = "", + TypeInstanceName = metric.Name, + Values = new[] {metric.GetMetric()} + }; + switch (metric.Type) + { + case StatsdMetric.StatsdType.StatsdGauge: + metricVal.TypeName = "gauge"; + break; + case StatsdMetric.StatsdType.StatsdTimer: + metricVal.TypeName = "latency"; + metricVal.TypeInstanceName += "-average"; + break; + case StatsdMetric.StatsdType.StatsdSet: + metricVal.TypeName = "objects"; + break; + default: + metricVal.TypeName = "derive"; + break; + } + TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1); + double epoch = t.TotalMilliseconds/1000; + metricVal.Epoch = Math.Round(epoch, 3); + + res.Add(metricVal); + + if (metric.Type == StatsdMetric.StatsdType.StatsdTimer) + { + if (_timerLower) + { + MetricValue lowerValue = metricVal.DeepCopy(); + lowerValue.TypeInstanceName = metric.Name + "-lower"; + lowerValue.Values[0] = metric.Lat.Min; + res.Add(lowerValue); + } + if (_timerUpper) + { + MetricValue upperValue = metricVal.DeepCopy(); + upperValue.TypeInstanceName = metric.Name + "-upper"; + upperValue.Values[0] = metric.Lat.Max; + res.Add(upperValue); + } + + if (_timerSum) + { + MetricValue upperSum = metricVal.DeepCopy(); + upperSum.TypeInstanceName = metric.Name + "-Sum"; + upperSum.Values[0] = metric.Lat.Sum; + res.Add(upperSum); + } + if (_timerCount) + { + MetricValue upperCount = metricVal.DeepCopy(); + upperCount.TypeInstanceName = metric.Name + "-count"; + upperCount.Values[0] = metric.Lat.Num; + res.Add(upperCount); + } + Histogram histogram = metric.Lat.Histogram; + if (_percentiles != null && _percentiles.Length > 0 && histogram != null) + { + foreach (float percentile in _percentiles) + { + double val = histogram.GetPercentile(percentile); + + MetricValue mv = metricVal.DeepCopy(); + mv.TypeInstanceName = metric.Name + "-percentile-" + percentile; + mv.Values[0] = val; + res.Add(mv); + } + } + } + metric.Reset(); + } + Logger.Debug("Removing entries that were not updated:{0}", removeList.Count); + foreach (string key in removeList) + { + _metrics.Remove(key); + } + return (res); + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/StatsdListener.cs b/src/CollectdWinService/StatsdListener.cs new file mode 100644 index 0000000..9057d90 --- /dev/null +++ b/src/CollectdWinService/StatsdListener.cs @@ -0,0 +1,117 @@ +using System; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class StatsdListener + { + public delegate void HandleMessage(string message); + + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly IPEndPoint _endPoint; + + private readonly HandleMessage _messageHandler; + private readonly Socket _socket; + private bool _run; + + public StatsdListener(int port, HandleMessage handleMessage) + { + _messageHandler = handleMessage; + _endPoint = new IPEndPoint(IPAddress.Any, port); + _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + } + + private void BindSocket() + { + while (!_socket.IsBound) + { + try + { + _socket.Bind(_endPoint); + } + catch (Exception exp) + { + Logger.Error("BindSocket failed: ", exp); + } + if (_socket.IsBound) + break; + Thread.Sleep(10*1000); + } + } + + private void CloseSocket() + { + try + { + _socket.Shutdown(SocketShutdown.Both); + _socket.Close(); + } + catch (Exception exp) + { + Logger.Error("CloseSocket failed: ", exp); + } + } + + public void Start() + { + Logger.Trace("Start() begin"); + var buffer = new byte[1024*4]; + + var sender = new IPEndPoint(IPAddress.Any, 0); + EndPoint remote = sender; + + _run = true; + while (_run) + { + if (!_socket.IsBound) + { + BindSocket(); + } + try + { + int recv = _socket.ReceiveFrom(buffer, ref remote); + string str = Encoding.ASCII.GetString(buffer, 0, recv); + str = str.TrimEnd('\r', '\n'); + + _messageHandler(str); + } + catch + { + CloseSocket(); + } + } + + Logger.Trace("Start() end"); + } + + public void Stop() + { + Logger.Trace("Stop() begin"); + _run = false; + // closing socket will cause Socket.ReceiveFrom() blocked call to + // throw SocketException, a work-around for shutting down a listener. + CloseSocket(); + Logger.Trace("Stop() end"); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/StatsdMetrics.cs b/src/CollectdWinService/StatsdMetrics.cs new file mode 100644 index 0000000..9cc0ee2 --- /dev/null +++ b/src/CollectdWinService/StatsdMetrics.cs @@ -0,0 +1,262 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class StatsdMetric + { + public enum StatsdType + { + StatsdCounter, + StatsdTimer, + StatsdGauge, + StatsdSet + }; + + private readonly HashSet _set; + + public StatsdMetric(string name, StatsdType type, double val) + { + Name = name; + Type = type; + _set = null; + Lat = null; + Value = val; + NumUpdates = 1; + + switch (Type) + { + case StatsdType.StatsdSet: + _set = new HashSet {val}; + break; + case StatsdType.StatsdTimer: + Lat = new Latency(); + Lat.Min = Lat.Max = Lat.Sum = val; + Lat.Num = 1; + break; + } + } + + public string Name { get; private set; } + public StatsdType Type { get; private set; } + public double Value { get; private set; } + public Latency Lat { get; private set; } + public int NumUpdates { get; private set; } + + public double GetMetric() + { + switch (Type) + { + case StatsdType.StatsdSet: + return (_set.Count); + + case StatsdType.StatsdTimer: + return (Lat.Sum/Lat.Num); + } + return (Value); + } + + public void Reset() + { + NumUpdates = 0; + + if (Type == StatsdType.StatsdSet && _set != null) + { + _set.Clear(); + } + if (Type == StatsdType.StatsdTimer && Lat != null) + { + Lat.Reset(); + } + } + + public void AddValue(double value) + { + switch (Type) + { + case StatsdType.StatsdCounter: + Value += value; + break; + case StatsdType.StatsdSet: + _set.Add(value); + break; + case StatsdType.StatsdGauge: + Value = value; + break; + case StatsdType.StatsdTimer: + Lat.AddValue(value); + break; + } + NumUpdates++; + } + + public class Latency + { + public double Max; + public double Min; + public int Num; + public double Sum; + + public Latency() + { + Min = Max = Sum = 0; + Num = 0; + Histogram = null; + if (HistogramEnabled) + { + Histogram = new Histogram(); + } + } + + public Histogram Histogram { get; private set; } + + public static bool HistogramEnabled { get; set; } + + public void AddValue(double val) + { + Min = (val < Min) ? val : Min; + Max = (val > Max) ? val : Max; + Sum += val; + Num++; + if (HistogramEnabled) + { + Histogram.AddValue(val); + } + } + + public void Reset() + { + Min = Max = Sum = 0; + Num = 0; + if (HistogramEnabled) + { + Histogram.Reset(); + } + } + }; + } + + internal class StatsdMetricParser + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + public static IList Parse(string str) + { + var metrics = new List(); + string[] lines = str.Split('\n'); + metrics.AddRange(lines.Select(ParseLine).Where(metric => metric != null)); + return (metrics); + } + + /* + * StatsD metric collection protocol + * - metrics are separated by newlines + * - each line ar generally of the form: + * :| + * ** Gauges : :|g + * ** Counters : :|c[|@] + * ** Timers : :|ms + * ** Sets : :|s + */ + + public static StatsdMetric ParseLine(string line) + { + const string pattern = @"^(?.*):(?.*)\|(?.*)(\|\@(?.*))?$"; + var regex = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.RightToLeft); + Match match = regex.Match(line); + + if (!match.Success) + { + Logger.Debug("Parser: Invalid statsd format [{0}]", line); + return (null); + } + GroupCollection groups = match.Groups; + + string name = groups["name"].Value; + string valstr = groups["value"].Value; + string typestr = groups["type"].Value; + string ratestr = groups["rate"].Value; + + if (String.IsNullOrEmpty(name) || String.IsNullOrEmpty(valstr) || String.IsNullOrEmpty(typestr)) + { + Logger.Debug("Parser: name/value/type are not optional [{0}]", line); + return (null); + } + StatsdMetric.StatsdType type; + + if (String.Compare(typestr, "g", StringComparison.OrdinalIgnoreCase) == 0) + type = StatsdMetric.StatsdType.StatsdGauge; + else if (String.Compare(typestr, "c", StringComparison.OrdinalIgnoreCase) == 0) + type = StatsdMetric.StatsdType.StatsdCounter; + else if (String.Compare(typestr, "s", StringComparison.OrdinalIgnoreCase) == 0) + type = StatsdMetric.StatsdType.StatsdSet; + else if (String.Compare(typestr, "ms", StringComparison.OrdinalIgnoreCase) == 0) + type = StatsdMetric.StatsdType.StatsdTimer; + else + { + Logger.Debug("Parser: invalid type [{0}]", line); + return (null); + } + double value; + try + { + value = Convert.ToDouble(valstr); + } + catch (Exception) + { + Logger.Debug("Parser: invalid value [{0}]", line); + return (null); + } + + double rate = 0; + try + { + if (!String.IsNullOrEmpty(ratestr)) + rate = Convert.ToDouble(ratestr); + } + catch (Exception) + { + Logger.Debug("Parser: invalid rate [{0}]", line); + return (null); + } + + if (!string.IsNullOrEmpty(ratestr) && (rate <= 0 || rate > 1)) + { + Logger.Debug("Parser: invalid rate range [{0}]", line); + return (null); + } + + if (!string.IsNullOrEmpty(ratestr) && type != StatsdMetric.StatsdType.StatsdCounter) + { + Logger.Debug("Parser: rate is supported only for Counters [{0}]", line); + return (null); + } + + if (!string.IsNullOrEmpty(ratestr)) + { + value = value/rate; + } + + var metric = new StatsdMetric(name, type, value); + return (metric); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/StatsdPlugin.cs b/src/CollectdWinService/StatsdPlugin.cs new file mode 100644 index 0000000..950ff36 --- /dev/null +++ b/src/CollectdWinService/StatsdPlugin.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using System.Threading; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal class StatsdPlugin : IMetricsReadPlugin + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private bool _delCounters; + private bool _delGauges, _delSets; + private bool _delTimers; + private float[] _percentiles; + private int _port; + private bool _running; + private StatsdAggregator _statsdAggregator; + private StatsdListener _statsdListener; + private Thread _statsdThread; + private bool _timerCount; + private bool _timerLower; + private bool _timerSum; + private bool _timerUpper; + + public StatsdPlugin() + { + _running = false; + } + + public void Configure() + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + throw new Exception("Cannot get configuration section : CollectdWinConfig"); + } + + _port = config.Statsd.Port; + + _delCounters = config.Statsd.DeleteCache.Counters; + _delTimers = config.Statsd.DeleteCache.Timers; + _delGauges = config.Statsd.DeleteCache.Gauges; + _delSets = config.Statsd.DeleteCache.Sets; + + _timerLower = config.Statsd.Timer.Lower; + _timerUpper = config.Statsd.Timer.Upper; + _timerSum = config.Statsd.Timer.Sum; + _timerCount = config.Statsd.Timer.Count; + _percentiles = + (from CollectdWinConfig.StatsdConfig.PercentileConfig percentileConfig in + config.Statsd.Timer.Percentiles + select percentileConfig.Value).ToArray(); + + _statsdAggregator = new StatsdAggregator(_delCounters, _delTimers, _delGauges, _delSets, _timerLower, + _timerUpper, + _timerSum, _timerCount, _percentiles); + Logger.Info("Statsd plugin configured"); + } + + public void Start() + { + if (_running) + return; + + _statsdListener = new StatsdListener(_port, HandleMessage); + _statsdThread = new Thread(_statsdListener.Start); + _statsdThread.Start(); + + _running = true; + Logger.Info("Statsd plugin started"); + } + + public void Stop() + { + if (!_running) + return; + _statsdListener.Stop(); + _statsdThread.Interrupt(); + + _running = false; + Logger.Info("Statsd plugin stopped"); + } + + public IList Read() + { + return (_statsdAggregator.Read()); + } + + public void HandleMessage(string message) + { + IList metrics = StatsdMetricParser.Parse(message); + foreach (StatsdMetric metric in metrics) + { + _statsdAggregator.AddMetric(metric); + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/TypesDB.cs b/src/CollectdWinService/TypesDB.cs new file mode 100644 index 0000000..c3c9b65 --- /dev/null +++ b/src/CollectdWinService/TypesDB.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + public enum DsType + { + Absolute, + Counter, + Derive, + Gauge + }; + + public enum Status + { + Success, + Failure + }; + + public class DataSource + { + public DataSource(string name, DsType type, double min, double max) + { + Name = name; + Type = type; + Min = min; + Max = max; + } + + public string Name { get; set; } + public DsType Type { get; set; } + public double Min { get; set; } + public double Max { get; set; } + } + + internal class DataSetCollection + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private static volatile DataSetCollection _instance; + private static readonly object SyncRoot = new Object(); + + private readonly Dictionary> _dataSetMap; + // + + private DataSetCollection() + { + _dataSetMap = new Dictionary>(); + } + + public static DataSetCollection Instance + { + get + { + if (_instance == null) + { + lock (SyncRoot) + { + if (_instance == null) + { + _instance = new DataSetCollection(); + _instance.Load(); + } + } + } + return _instance; + } + } + + private static Status GetDouble(string dstr, out double val) + { + if (dstr == "u" || dstr == "U") + { + val = Double.NaN; + return (Status.Success); + } + try + { + val = Double.Parse(dstr); + } + catch (Exception) + { + val = Double.NaN; + return (Status.Failure); + } + return (Status.Success); + } + + public void Print() + { + var sb = new StringBuilder(); + foreach (var entry in _dataSetMap) + { + sb.Append(string.Format("\n[{0}] ==>", entry.Key)); + foreach (DataSource ds in entry.Value) + { + sb.Append(string.Format(" [{0}:{1}:{2}:{3}]", ds.Name, ds.Type, ds.Min, ds.Max)); + } + } + Console.WriteLine(sb.ToString()); + } + + public void Load() + { + const string dataSetPattern = @"[\s\t]*(\w+)[\s\t]*(.*)$"; + const string dataSourcePattern = @"(\w+):(ABSOLUTE|COUNTER|DERIVE|GAUGE):([+-]?\w+):([+-]?\w+)[,]?\s*"; + + var dataSetRegex = new Regex(dataSetPattern, RegexOptions.IgnoreCase); + var dataSourceRegex = new Regex(dataSourcePattern, RegexOptions.IgnoreCase); + + string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "types.db"); + string[] lines = File.ReadAllLines(fileName); + + foreach (string line in lines) + { + if (line.StartsWith("#")) + { + continue; + } + Match match = dataSetRegex.Match(line); + if (match.Groups.Count < 3) + { + Logger.Error("types.db: invalid data set [{0}]", line); + continue; + } + string dataSetName = match.Groups[1].Value; + MatchCollection matches = dataSourceRegex.Matches(line); + if (matches.Count < 1) + { + Logger.Error("types.db: invalid data source [{0}]", line); + continue; + } + var dataSourceList = new List(); + foreach (Match m in matches) + { + if (m.Groups.Count != 5) + { + Logger.Error("types.db: cannot parse data source [{0}]", line); + dataSourceList.Clear(); + break; + } + + string dsName = m.Groups[1].Value; + var dstype = (DsType) Enum.Parse(typeof (DsType), m.Groups[2].Value, true); + + double min, max; + + if (GetDouble(m.Groups[3].Value, out min) != Status.Success) + { + Logger.Error("types.db: invalid Min value [{0}]", line); + dataSourceList.Clear(); + break; + } + + if (GetDouble(m.Groups[4].Value, out max) != Status.Success) + { + Logger.Error("types.db: invalid Max value [{0}]", line); + dataSourceList.Clear(); + break; + } + + var ds = new DataSource(dsName, dstype, min, max); + dataSourceList.Add(ds); + } + if (dataSourceList.Count > 0) + { + _dataSetMap[dataSetName] = dataSourceList; + } + } + } + + public IList GetDataSource(string dataSetName) + { + IList dataSourceList; + return (_dataSetMap.TryGetValue(dataSetName, out dataSourceList) ? (dataSourceList) : (null)); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/Util.cs b/src/CollectdWinService/Util.cs new file mode 100644 index 0000000..640b052 --- /dev/null +++ b/src/CollectdWinService/Util.cs @@ -0,0 +1,35 @@ +using System; + +namespace BloombergFLP.CollectdWin +{ + public static class Util + { + public static double GetNow() + { + TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1); + double epoch = t.TotalMilliseconds/1000; + double now = Math.Round(epoch, 3); + return (now); + } + + public static string GetHostName() + { + return (Environment.MachineName.ToLower()); + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/WindowsPerformanceCounterPlugin.cs b/src/CollectdWinService/WindowsPerformanceCounterPlugin.cs new file mode 100644 index 0000000..37a773a --- /dev/null +++ b/src/CollectdWinService/WindowsPerformanceCounterPlugin.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Diagnostics; +using NLog; + +namespace BloombergFLP.CollectdWin +{ + internal struct Metric + { + public string Category; + public string CollectdPlugin, CollectdPluginInstance, CollectdType, CollectdTypeInstance; + public string CounterName; + public IList Counters; + public string Instance; + public uint ScaleDownFactor; + public uint ScaleUpFactor; + } + + internal class WindowsPerformanceCounterPlugin : IMetricsReadPlugin + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly IList _metrics; + private string _hostName; + + public WindowsPerformanceCounterPlugin() + { + _metrics = new List(); + } + + public void Configure() + { + var config = ConfigurationManager.GetSection("CollectdWinConfig") as CollectdWinConfig; + if (config == null) + { + throw new Exception("Cannot get configuration section : CollectdWinConfig"); + } + + _hostName = Util.GetHostName(); + + _metrics.Clear(); + + foreach (CollectdWinConfig.CounterConfig counter in config.WindowsPerformanceCounters.Counters) + { + if (counter.Instance == "*") + { + var cat = new PerformanceCounterCategory(counter.Category); + string[] instances = cat.GetInstanceNames(); + foreach (string instance in instances) + { + // Replace collectd_plugin_instance with the Instance got from counter + AddPerformanceCounter(counter.Category, counter.Name, + instance, counter.ScaleUpFactor, + counter.ScaleDownFactor, counter.CollectdPlugin, + instance, counter.CollectdType, + counter.CollectdTypeInstance); + } + } + else + { + AddPerformanceCounter(counter.Category, counter.Name, + counter.Instance, counter.ScaleUpFactor, + counter.ScaleDownFactor, counter.CollectdPlugin, + counter.CollectdPluginInstance, counter.CollectdType, + counter.CollectdTypeInstance); + } + } + Logger.Info("WindowsPerformanceCounter plugin configured"); + } + + public void Start() + { + Logger.Info("WindowsPerformanceCounter plugin started"); + } + + public void Stop() + { + Logger.Info("WindowsPerformanceCounter plugin stopped"); + } + + public IList Read() + { + var metricValueList = new List(); + foreach (Metric metric in _metrics) + { + var vals = new List(); + foreach (PerformanceCounter ctr in metric.Counters) + { + double val = ctr.NextValue(); + if (metric.ScaleUpFactor > 0) + { + val = val*metric.ScaleUpFactor; + } + else + { + if (metric.ScaleDownFactor > 0) + { + val = val/metric.ScaleDownFactor; + } + } + vals.Add(val); + } + + var metricValue = new MetricValue + { + HostName = _hostName, + PluginName = metric.CollectdPlugin, + PluginInstanceName = metric.CollectdPluginInstance, + TypeName = metric.CollectdType, + TypeInstanceName = metric.CollectdTypeInstance, + Values = vals.ToArray() + }; + + TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1); + double epoch = t.TotalMilliseconds/1000; + metricValue.Epoch = Math.Round(epoch, 3); + + metricValueList.Add(metricValue); + } + return (metricValueList); + } + + private void AddPerformanceCounter(string category, string names, string instance, uint scaleUpFactor, + uint scaleDownFactor, string collectdPlugin, string collectdPluginInstance, string collectdType, + string collectdTypeInstance) + { + string logstr = + string.Format( + "Category:{0} - Instance:{1} - counter:{2} - ScaleUpFactor:{3} - ScaleDownFactor:{4} - CollectdPlugin:{5} - CollectdPluginInstance:{6} - CollectdType:{7} - CollectdTypeInstance:{8}", + category, instance, names, scaleUpFactor, scaleDownFactor, collectdPlugin, collectdPluginInstance, + collectdType, collectdTypeInstance); + + try + { + var metric = new Metric(); + string[] counterList = names.Split(','); + metric.Counters = new List(); + foreach (string ctr in counterList) + metric.Counters.Add(new PerformanceCounter(category, ctr.Trim(), instance)); + metric.Category = category; + metric.Instance = instance; + metric.CounterName = names; + metric.ScaleUpFactor = scaleUpFactor; + metric.ScaleDownFactor = scaleDownFactor; + metric.CollectdPlugin = collectdPlugin; + metric.CollectdPluginInstance = collectdPluginInstance; + metric.CollectdType = collectdType; + metric.CollectdTypeInstance = collectdTypeInstance; + + _metrics.Add(metric); + Logger.Info("Added Performance COUNTER : {0}", logstr); + } + catch (Exception exp) + { + Logger.Error("Got exception : {0}, while adding performance counter: {1}", exp, logstr); + } + } + } +} + +// ---------------------------------------------------------------------------- +// Copyright (C) 2015 Bloomberg Finance L.P. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ----------------------------- END-OF-FILE ---------------------------------- \ No newline at end of file diff --git a/src/CollectdWinService/app.config b/src/CollectdWinService/app.config new file mode 100644 index 0000000..dc1e42d --- /dev/null +++ b/src/CollectdWinService/app.config @@ -0,0 +1,118 @@ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/CollectdWinService/types.db b/src/CollectdWinService/types.db new file mode 100644 index 0000000..f8b0926 --- /dev/null +++ b/src/CollectdWinService/types.db @@ -0,0 +1,261 @@ +# +# types.db - Data-set specifications for the system statistics collection daemon collectd +# This file is a copy from following URL: +# https://raw.githubusercontent.com/collectd/collectd/master/src/types.db +# +# The types.db file contains one line for each data-set specification. Each +# line consists of two fields delimited by spaces and/or horizontal tabs. +# The first field defines the name of the data-set, while the second field +# defines a list of data-source specifications, delimited by spaces and, +# optionally, a comma (",") right after each list-entry. +# +# The format of the data-source specification has been inspired by RRDtool's +# data-source specification. Each data-source is defined by a quadruple made +# up of the data-source name, type, minimal and maximal values, delimited by +# colons (":"): ds-name:ds-type:min:max. ds-type may be either ABSOLUTE, +# COUNTER, DERIVE, or GAUGE. min and max define the range of valid values for +# data stored for this data-source. If U is specified for either the min or +# max value, it will be set to unknown, meaning that no range checks will +# happen. See rrdcreate(1) for more details. +# +# +absolute value:ABSOLUTE:0:U +apache_bytes value:DERIVE:0:U +apache_connections value:GAUGE:0:65535 +apache_idle_workers value:GAUGE:0:65535 +apache_requests value:DERIVE:0:U +apache_scoreboard value:GAUGE:0:65535 +ath_nodes value:GAUGE:0:65535 +ath_stat value:DERIVE:0:U +backends value:GAUGE:0:65535 +bitrate value:GAUGE:0:4294967295 +blocked_clients value:GAUGE:0:U +bytes value:GAUGE:0:U +cache_eviction value:DERIVE:0:U +cache_operation value:DERIVE:0:U +cache_ratio value:GAUGE:0:100 +cache_result value:DERIVE:0:U +cache_size value:GAUGE:0:U +ceph_bytes value:GAUGE:U:U +ceph_latency value:GAUGE:U:U +ceph_rate value:DERIVE:0:U +changes_since_last_save value:GAUGE:0:U +charge value:GAUGE:0:U +compression_ratio value:GAUGE:0:2 +compression uncompressed:DERIVE:0:U, compressed:DERIVE:0:U +connections value:DERIVE:0:U +conntrack value:GAUGE:0:4294967295 +contextswitch value:DERIVE:0:U +count value:GAUGE:0:U +counter value:COUNTER:U:U +cpufreq value:GAUGE:0:U +cpu value:DERIVE:0:U +current_connections value:GAUGE:0:U +current_sessions value:GAUGE:0:U +current value:GAUGE:U:U +delay value:GAUGE:-1000000:1000000 +derive value:DERIVE:0:U +df_complex value:GAUGE:0:U +df_inodes value:GAUGE:0:U +df used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623 +disk_latency read:GAUGE:0:U, write:GAUGE:0:U +disk_merged read:DERIVE:0:U, write:DERIVE:0:U +disk_octets read:DERIVE:0:U, write:DERIVE:0:U +disk_ops_complex value:DERIVE:0:U +disk_ops read:DERIVE:0:U, write:DERIVE:0:U +disk_time read:DERIVE:0:U, write:DERIVE:0:U +disk_io_time io_time:DERIVE:0:U, weighted_io_time:DERIVE:0:U +dns_answer value:DERIVE:0:U +dns_notify value:DERIVE:0:U +dns_octets queries:DERIVE:0:U, responses:DERIVE:0:U +dns_opcode value:DERIVE:0:U +dns_qtype_cached value:GAUGE:0:4294967295 +dns_qtype value:DERIVE:0:U +dns_query value:DERIVE:0:U +dns_question value:DERIVE:0:U +dns_rcode value:DERIVE:0:U +dns_reject value:DERIVE:0:U +dns_request value:DERIVE:0:U +dns_resolver value:DERIVE:0:U +dns_response value:DERIVE:0:U +dns_transfer value:DERIVE:0:U +dns_update value:DERIVE:0:U +dns_zops value:DERIVE:0:U +drbd_resource value:DERIVE:0:U +duration seconds:GAUGE:0:U +email_check value:GAUGE:0:U +email_count value:GAUGE:0:U +email_size value:GAUGE:0:U +entropy value:GAUGE:0:4294967295 +expired_keys value:GAUGE:0:U +fanspeed value:GAUGE:0:U +file_size value:GAUGE:0:U +files value:GAUGE:0:U +flow value:GAUGE:0:U +fork_rate value:DERIVE:0:U +frequency_offset value:GAUGE:-1000000:1000000 +frequency value:GAUGE:0:U +fscache_stat value:DERIVE:0:U +gauge value:GAUGE:U:U +hash_collisions value:DERIVE:0:U +http_request_methods value:DERIVE:0:U +http_requests value:DERIVE:0:U +http_response_codes value:DERIVE:0:U +humidity value:GAUGE:0:100 +if_collisions value:DERIVE:0:U +if_dropped rx:DERIVE:0:U, tx:DERIVE:0:U +if_errors rx:DERIVE:0:U, tx:DERIVE:0:U +if_multicast value:DERIVE:0:U +if_octets rx:DERIVE:0:U, tx:DERIVE:0:U +if_packets rx:DERIVE:0:U, tx:DERIVE:0:U +if_rx_errors value:DERIVE:0:U +if_rx_octets value:DERIVE:0:U +if_tx_errors value:DERIVE:0:U +if_tx_octets value:DERIVE:0:U +invocations value:DERIVE:0:U +io_octets rx:DERIVE:0:U, tx:DERIVE:0:U +io_packets rx:DERIVE:0:U, tx:DERIVE:0:U +ipt_bytes value:DERIVE:0:U +ipt_packets value:DERIVE:0:U +irq value:DERIVE:0:U +latency value:GAUGE:0:U +links value:GAUGE:0:U +load shortterm:GAUGE:0:5000, midterm:GAUGE:0:5000, longterm:GAUGE:0:5000 +md_disks value:GAUGE:0:U +memcached_command value:DERIVE:0:U +memcached_connections value:GAUGE:0:U +memcached_items value:GAUGE:0:U +memcached_octets rx:DERIVE:0:U, tx:DERIVE:0:U +memcached_ops value:DERIVE:0:U +memory value:GAUGE:0:281474976710656 +memory_lua value:GAUGE:0:281474976710656 +multimeter value:GAUGE:U:U +mutex_operations value:DERIVE:0:U +mysql_commands value:DERIVE:0:U +mysql_handler value:DERIVE:0:U +mysql_locks value:DERIVE:0:U +mysql_log_position value:DERIVE:0:U +mysql_octets rx:DERIVE:0:U, tx:DERIVE:0:U +mysql_bpool_pages value:GAUGE:0:U +mysql_bpool_bytes value:GAUGE:0:U +mysql_bpool_counters value:DERIVE:0:U +mysql_innodb_data value:DERIVE:0:U +mysql_innodb_dblwr value:DERIVE:0:U +mysql_innodb_log value:DERIVE:0:U +mysql_innodb_pages value:DERIVE:0:U +mysql_innodb_row_lock value:DERIVE:0:U +mysql_innodb_rows value:DERIVE:0:U +mysql_select value:DERIVE:0:U +mysql_sort value:DERIVE:0:U +nfs_procedure value:DERIVE:0:U +nginx_connections value:GAUGE:0:U +nginx_requests value:DERIVE:0:U +node_octets rx:DERIVE:0:U, tx:DERIVE:0:U +node_rssi value:GAUGE:0:255 +node_stat value:DERIVE:0:U +node_tx_rate value:GAUGE:0:127 +objects value:GAUGE:0:U +operations value:DERIVE:0:U +packets value:DERIVE:0:U +pending_operations value:GAUGE:0:U +percent value:GAUGE:0:100.1 +percent_bytes value:GAUGE:0:100.1 +percent_inodes value:GAUGE:0:100.1 +pf_counters value:DERIVE:0:U +pf_limits value:DERIVE:0:U +pf_source value:DERIVE:0:U +pf_states value:GAUGE:0:U +pf_state value:DERIVE:0:U +pg_blks value:DERIVE:0:U +pg_db_size value:GAUGE:0:U +pg_n_tup_c value:DERIVE:0:U +pg_n_tup_g value:GAUGE:0:U +pg_numbackends value:GAUGE:0:U +pg_scan value:DERIVE:0:U +pg_xact value:DERIVE:0:U +ping_droprate value:GAUGE:0:100 +ping_stddev value:GAUGE:0:65535 +ping value:GAUGE:0:65535 +players value:GAUGE:0:1000000 +power value:GAUGE:0:U +pressure value:GAUGE:0:U +protocol_counter value:DERIVE:0:U +ps_code value:GAUGE:0:9223372036854775807 +ps_count processes:GAUGE:0:1000000, threads:GAUGE:0:1000000 +ps_cputime user:DERIVE:0:U, syst:DERIVE:0:U +ps_data value:GAUGE:0:9223372036854775807 +ps_disk_octets read:DERIVE:0:U, write:DERIVE:0:U +ps_disk_ops read:DERIVE:0:U, write:DERIVE:0:U +ps_pagefaults minflt:DERIVE:0:U, majflt:DERIVE:0:U +ps_rss value:GAUGE:0:9223372036854775807 +ps_stacksize value:GAUGE:0:9223372036854775807 +ps_state value:GAUGE:0:65535 +ps_vm value:GAUGE:0:9223372036854775807 +pubsub value:GAUGE:0:U +queue_length value:GAUGE:0:U +records value:GAUGE:0:U +requests value:GAUGE:0:U +response_time value:GAUGE:0:U +response_code value:GAUGE:0:U +route_etx value:GAUGE:0:U +route_metric value:GAUGE:0:U +routes value:GAUGE:0:U +segments value:GAUGE:0:65535 +serial_octets rx:DERIVE:0:U, tx:DERIVE:0:U +signal_noise value:GAUGE:U:0 +signal_power value:GAUGE:U:0 +signal_quality value:GAUGE:0:U +smart_poweron value:GAUGE:0:U +smart_powercycles value:GAUGE:0:U +smart_badsectors value:GAUGE:0:U +smart_temperature value:GAUGE:-300:300 +smart_attribute current:GAUGE:0:255, worst:GAUGE:0:255, threshold:GAUGE:0:255, pretty:GAUGE:0:U +snr value:GAUGE:0:U +spam_check value:GAUGE:0:U +spam_score value:GAUGE:U:U +spl value:GAUGE:U:U +swap_io value:DERIVE:0:U +swap value:GAUGE:0:1099511627776 +tcp_connections value:GAUGE:0:4294967295 +temperature value:GAUGE:U:U +threads value:GAUGE:0:U +time_dispersion value:GAUGE:-1000000:1000000 +timeleft value:GAUGE:0:U +time_offset value:GAUGE:-1000000:1000000 +total_bytes value:DERIVE:0:U +total_connections value:DERIVE:0:U +total_objects value:DERIVE:0:U +total_operations value:DERIVE:0:U +total_requests value:DERIVE:0:U +total_sessions value:DERIVE:0:U +total_threads value:DERIVE:0:U +total_time_in_ms value:DERIVE:0:U +total_values value:DERIVE:0:U +uptime value:GAUGE:0:4294967295 +users value:GAUGE:0:65535 +vcl value:GAUGE:0:65535 +vcpu value:GAUGE:0:U +virt_cpu_total value:DERIVE:0:U +virt_vcpu value:DERIVE:0:U +vmpage_action value:DERIVE:0:U +vmpage_faults minflt:DERIVE:0:U, majflt:DERIVE:0:U +vmpage_io in:DERIVE:0:U, out:DERIVE:0:U +vmpage_number value:GAUGE:0:4294967295 +volatile_changes value:GAUGE:0:U +voltage_threshold value:GAUGE:U:U, threshold:GAUGE:U:U +voltage value:GAUGE:U:U +vs_memory value:GAUGE:0:9223372036854775807 +vs_processes value:GAUGE:0:65535 +vs_threads value:GAUGE:0:65535 + +# +# Legacy types +# (required for the v5 upgrade target) +# +arc_counts demand_data:COUNTER:0:U, demand_metadata:COUNTER:0:U, prefetch_data:COUNTER:0:U, prefetch_metadata:COUNTER:0:U +arc_l2_bytes read:COUNTER:0:U, write:COUNTER:0:U +arc_l2_size value:GAUGE:0:U +arc_ratio value:GAUGE:0:U +arc_size current:GAUGE:0:U, target:GAUGE:0:U, minlimit:GAUGE:0:U, maxlimit:GAUGE:0:U +mysql_qcache hits:COUNTER:0:U, inserts:COUNTER:0:U, not_cached:COUNTER:0:U, lowmem_prunes:COUNTER:0:U, queries_in_cache:GAUGE:0:U +mysql_threads running:GAUGE:0:U, connected:GAUGE:0:U, cached:GAUGE:0:U, created:COUNTER:0:U diff --git a/src/installer/CollectdWin.wixproj b/src/installer/CollectdWin.wixproj new file mode 100644 index 0000000..616b172 --- /dev/null +++ b/src/installer/CollectdWin.wixproj @@ -0,0 +1,45 @@ + + + + Debug + x86 + 3.9 + 93cc9e80-b6f5-4768-998e-889bdf5ab579 + 2.0 + CollectdWin-$(Platform) + Package + $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets + $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets + CollectdWin + + + bin\$(Platform)\$(Configuration)\ + obj\$(Platform)\$(Configuration)\ + Debug + + + bin\$(Platform)\$(Configuration)\ + obj\$(Platform)\$(Configuration)\ + + + Debug + bin\$(Platform)\$(Configuration)\ + obj\$(Platform)\$(Configuration)\ + + + bin\$(Platform)\$(Configuration)\ + obj\$(Platform)\$(Configuration)\ + + + + + + + diff --git a/src/installer/Product.wxs b/src/installer/Product.wxs new file mode 100644 index 0000000..906ca98 --- /dev/null +++ b/src/installer/Product.wxs @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/third-party/NLog.dll b/third-party/NLog.dll new file mode 100644 index 0000000000000000000000000000000000000000..e6fe774bf8f3cc56f8cba80a2ffb49088a18e8b0 GIT binary patch literal 413696 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 e#^g9o4~X_-%l^8$LuBld9+N;d}=te4bC% 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 Y$J%+k#pyK-KxHw&fq`4bl>y7d+s^s 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%0D`wZxeJem>?)C!P~q;7KRn1AKyHrSAZr62j@) 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 literal 0 HcmV?d00001