c# - .NET Framework 中用于网络流量的性能计数器
问题描述
因为始终打开 Oracle 连接并希望使用性能计数器跟踪它们。由于缺少管理员权限,我无法使用 perfmon。我用谷歌搜索并找到了 1 个有希望的示例,但我无法让它运行,非常感谢您的帮助!
性能监控类 (pmc) 如下所示:
List<PerformanceCounter> lstPerfCounters = new List<PerformanceCounter>();
public virtual void InitializeCounters(string AppInstanceName, Type PerfCountersList)
{
foreach (string counterName in Enum.GetNames(PerfCountersList))
{
PerformanceCounter PerfCounter = new PerformanceCounter();
PerfCounter.CategoryName = ".NET Data Provider for SqlServer";
PerfCounter.CounterName = counterName;
PerfCounter.InstanceName = AppInstanceName;
lstPerfCounters.Add(PerfCounter);
}
}
public virtual void PrintCounters()
{
foreach (PerformanceCounter p in lstPerfCounters)
{
Console.WriteLine("{0} = {1}", p.CounterName, p.NextValue());
}
Console.WriteLine("****************************************************************");
}
并有这些枚举:
public enum DBPerformanceCounters
{
NumberOfActiveConnectionPools,
NumberOfActiveConnections,
NumberOfFreeConnections,
NumberOfNonPooledConnections,
NumberOfPooledConnections,
SoftDisconnectsPerSecond,
SoftConnectsPerSecond,
NumberOfReclaimedConnections,
HardConnectsPerSecond,
HardDisconnectsPerSecond,
NumberOfActiveConnectionPoolGroups,
NumberOfInactiveConnectionPoolGroups,
NumberOfInactiveConnectionPools,
NumberOfStasisConnections
}
启动我的程序时,我想用给定的代码初始化它
PMC pc = new PMC();
string InstanceName = "myProgram";
pc.InitializeCounters(InstanceName, typeof(CountersList.DBPerformanceCounters));
pc.PrintCounters();
这就是问题所在:ide 告诉我, CountersList 不存在。如果我手动为 DBPerformanceCounter 创建一个列表,我会被告知它是一个变量,用作类型。我确定这只是一个小错误,但我一无所知,非常感谢您的帮助!提前致谢。
*删除了一些错别字。
解决方案
推荐阅读
- reactjs - 在 6.0.0-beta.0 版本中没有导出 useHistory?
- java - 更新 json 文件/从 java 将多个值写入 json
- android - 如何使用 kotlin 读取或加载属性文件以进行 Android 应用程序开发
- java - 如果 ID 不存在,JPA spring boot 函数中的 UPDATE 查询错误以插入新行,否则使用新值更新行
- python - 多类分类的混淆矩阵变错我找不到错误
- c - 如何在 64 位处理器上指定具有 scanf 格式的 int32_t 输出参数?
- android - 如何用我的数据填充水平进度条?
- php - 我将如何根据我已经创建和工作的登录方法创建注销方法?
- laravel-8 - 得到错误:未定义的类常量'LOAD_WITH_CHARTS'
- flask - Wtform 嵌套字段未填充 populate_obj