Skip to content

Ability to track arbitrary things as counters #53

Description

@tbolon

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions