Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to track arbitrary things as counters #53

Open
4 of 5 tasks
tbolon opened this issue Feb 26, 2016 · 4 comments
Open
4 of 5 tasks

Ability to track arbitrary things as counters #53

tbolon opened this issue Feb 26, 2016 · 4 comments

Comments

@tbolon
Copy link
Contributor

tbolon commented Feb 26, 2016

I have an internal requirement that could be adressed: we are using azure sql database, and performance counters for the database are only available through the sys.dm_od_performance_counters view.

My idea is to add an abstraction around performance counters to allow arbitrary providers to provide counters values.

It is similar to issues #28 and #46, but I do not want (for now) to expose them as performance counters for the system. It seems to be a lot easier to just provide IPerformanceCounterInfos instead of registering in the system new performance counters (it requires some admin rights and configuration to works).

This work will requires some steps:

  • Create a new abstraction around the code which transform an ICounterGroup into IPerformanceCounterInfo
  • Extract from CounterBusiness all works related to system performance counters in a new PerformanceCounterProvider. For simplicity, hard-code usage of thie provider into CounterBusiness
  • Add a way to select the provider in xml configuration
  • Provide provider's specific settings in xml.
  • Create a new SqlDmvPerformanceCounterProvider which will create IPerformanceCounterInfo based on an sql server statement

I will track this work in my own "abstract-perfcounterbusiness" branch for now.

I will try to fix the issues #28 and #46 with this work. The plugin feature could requires some big changes in the code (copy/paste plugin assemblies, dynamic registration, dependency injection, etc.)

@tbolon
Copy link
Contributor Author

tbolon commented Feb 26, 2016

I have created a WIP branch and PR to track this issue, please do not merge for now.

@poxet
Copy link
Owner

poxet commented Feb 27, 2016

Cool! Tell me when it is done.

@tbolon
Copy link
Contributor Author

tbolon commented Feb 29, 2016

Just submitted PR #58, which add a new custom provider system. I now plan to add a custom sqldmvprovider, which will use this new system.

@poxet
Copy link
Owner

poxet commented Mar 1, 2016

That sounds great! I will se if I have some time to use that too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants