summaryrefslogtreecommitdiff
path: root/src/pmdas/windows/pmda.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdas/windows/pmda.c')
-rw-r--r--src/pmdas/windows/pmda.c1601
1 files changed, 1601 insertions, 0 deletions
diff --git a/src/pmdas/windows/pmda.c b/src/pmdas/windows/pmda.c
new file mode 100644
index 0000000..0c5009a
--- /dev/null
+++ b/src/pmdas/windows/pmda.c
@@ -0,0 +1,1601 @@
+/*
+ * Windows PMDA
+ *
+ * Copyright (c) 2008-2010 Aconex. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+#include "hypnotoad.h"
+#include <ctype.h>
+
+/*
+ * Array of all metrics - the PMID item field indexes this directly.
+ */
+pdh_metric_t metricdesc[] = {
+/* kernel.all.cpu.user */
+ { { PMDA_PMID(0,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(_Total)\\% User Time"
+ },
+/* kernel.all.cpu.idle */
+ { { PMDA_PMID(0,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(_Total)\\% Idle Time"
+ },
+/* kernel.all.cpu.sys */
+ { { PMDA_PMID(0,2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(_Total)\\% Privileged Time"
+ },
+/* kernel.all.cpu.intr */
+ { { PMDA_PMID(0,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(_Total)\\% Interrupt Time"
+ },
+/* kernel.percpu.cpu.user */
+ { { PMDA_PMID(0,4), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(*)\\% User Time"
+ },
+/* kernel.percpu.cpu.idle */
+ { { PMDA_PMID(0,5), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(*)\\% Idle Time"
+ },
+/* kernel.percpu.cpu.sys */
+ { { PMDA_PMID(0,6), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(*)\\% Privileged Time"
+ },
+/* kernel.percpu.cpu.intr */
+ { { PMDA_PMID(0,7), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Processor(*)\\% Interrupt Time"
+ },
+/* kernel.num_processes */
+ { { PMDA_PMID(0,8), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\Processes"
+ },
+/* kernel.num_threads */
+ { { PMDA_PMID(0,9), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\Threads"
+ },
+/* kernel.all.pswitch */
+ { { PMDA_PMID(0,10), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\Context Switches/sec"
+ },
+/* kernel.all.file.read */
+ { { PMDA_PMID(0,11), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\File Read Operations/sec"
+ },
+/* kernel.all.file.write */
+ { { PMDA_PMID(0,12), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\File Write Operations/sec"
+ },
+/* kernel.all.file.read_bytes */
+ { { PMDA_PMID(0,13), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\File Read Bytes/sec"
+ },
+/* kernel.all.file.write_bytes */
+ { { PMDA_PMID(0,14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\System\\File Write Bytes/sec"
+ },
+/* disk.all.read */
+ { { PMDA_PMID(0,15), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Reads/sec"
+ },
+/* disk.all.write */
+ { { PMDA_PMID(0,16), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Writes/sec"
+ },
+/* disk.all.total */
+ { { PMDA_PMID(0,17), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Transfers/sec"
+ },
+/* disk.all.read_bytes */
+ { { PMDA_PMID(0,18), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Read Bytes/sec"
+ },
+/* disk.all.write_bytes */
+ { { PMDA_PMID(0,19), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Write Bytes/sec"
+ },
+/* disk.all.total_bytes */
+ { { PMDA_PMID(0,20), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Disk Bytes/sec"
+ },
+/* disk.dev.read */
+ { { PMDA_PMID(0,21), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Reads/sec"
+ },
+/* disk.dev.write */
+ { { PMDA_PMID(0,22), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Writes/sec"
+ },
+/* disk.dev.total */
+ { { PMDA_PMID(0,23), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Transfers/sec"
+ },
+/* disk.dev.read_bytes */
+ { { PMDA_PMID(0,24), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Read Bytes/sec"
+ },
+/* disk.dev.write_bytes */
+ { { PMDA_PMID(0,25), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Write Bytes/sec"
+ },
+/* disk.dev.total_bytes */
+ { { PMDA_PMID(0,26), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Disk Bytes/sec"
+ },
+/* mem.page_faults */
+ { { PMDA_PMID(0,27), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Page Faults/sec"
+ },
+/* mem.available */
+ { { PMDA_PMID(0,28), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_MBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Available MBytes"
+ },
+/* mem.committed_bytes */
+ { { PMDA_PMID(0,29), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Committed Bytes"
+ },
+/* mem.pool.paged_bytes */
+ { { PMDA_PMID(0,30), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pool Paged Bytes"
+ },
+/* mem.pool.non_paged_bytes */
+ { { PMDA_PMID(0,31), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pool Nonpaged Bytes"
+ },
+/* mem.cache.lazy_writes */
+ { { PMDA_PMID(0,32), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\Lazy Write Flushes/sec"
+ },
+/* mem.cache.lazy_write_pages */
+ { { PMDA_PMID(0,33), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\Lazy Write Pages/sec"
+ },
+/* mem.cache.mdl.read */
+ { { PMDA_PMID(0,34), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\MDL Reads/sec"
+ },
+/* mem.cache.read_ahead */
+ { { PMDA_PMID(0,35), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\Read Aheads/sec"
+ },
+/* mem.cache.mdl.sync_read */
+ { { PMDA_PMID(0,36), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\Sync MDL Reads/sec"
+ },
+/* mem.cache.mdl.async_read */
+ { { PMDA_PMID(0,37), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Cache\\Async MDL Reads/sec"
+ },
+/* network.interface.in.packets */
+ { { PMDA_PMID(0,38), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Packets Received/sec"
+ },
+/* network.interface.in.bytes */
+ { { PMDA_PMID(0,39), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0,0, PM_SPACE_BYTE, 0,0)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Bytes Received/sec"
+ },
+/* network.interface.in.errors */
+ { { PMDA_PMID(0,40), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Packets Received Errors"
+ },
+/* network.interface.out.packets */
+ { { PMDA_PMID(0,41), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Packets Sent/sec"
+ },
+/* network.interface.out.bytes */
+ { { PMDA_PMID(0,42), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0,0, PM_SPACE_BYTE, 0,0)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Bytes Sent/sec"
+ },
+/* network.interface.out.errors */
+ { { PMDA_PMID(0,43), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Packets Outbound Errors"
+ },
+/* network.interface.total.packets */
+ { { PMDA_PMID(0,44), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_NONE | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Packets/sec"
+ },
+/* network.interface.total.bytes */
+ { { PMDA_PMID(0,45), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) },
+ M_NONE, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Bytes Total/sec"
+ },
+/* sqlserver.buf_mgr.cache_hit_ratio */
+ { { PMDA_PMID(0,46), PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Buffer cache hit ratio"
+ },
+/* sqlserver.buf_mgr.page_lookups */
+ { { PMDA_PMID(0,47), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Page lookups/sec"
+ },
+/* sqlserver.buf_mgr.free_list_stalls */
+ { { PMDA_PMID(0,48), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Free list stalls/sec"
+ },
+/* sqlserver.buf_mgr.free_pages */
+ { { PMDA_PMID(0,49), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Free pages"
+ },
+/* sqlserver.buf_mgr.total_pages */
+ { { PMDA_PMID(0,50), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Total pages"
+ },
+/* sqlserver.buf_mgr.target_pages */
+ { { PMDA_PMID(0,51), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Target pages"
+ },
+/* sqlserver.buf_mgr.database_pages */
+ { { PMDA_PMID(0,52), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Database pages"
+ },
+/* sqlserver.buf_mgr.reserved_pages */
+ { { PMDA_PMID(0,53), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Reserved pages"
+ },
+/* sqlserver.buf_mgr.stolen_pages */
+ { { PMDA_PMID(0,54), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Stolen pages"
+ },
+/* sqlserver.buf_mgr.lazy_writes */
+ { { PMDA_PMID(0,55), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Lazy writes/sec"
+ },
+/* sqlserver.buf_mgr.readahead_pages */
+ { { PMDA_PMID(0,56), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Readahead pages/sec"
+ },
+/* sqlserver.buf_mgr.procedure_cache_pages */
+ { { PMDA_PMID(0,57), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Procedure cache pages"
+ },
+/* sqlserver.buf_mgr.page_reads */
+ { { PMDA_PMID(0,58), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Page reads/sec"
+ },
+/* sqlserver.buf_mgr.page_writes */
+ { { PMDA_PMID(0,59), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Page writes/sec"
+ },
+/* sqlserver.buf_mgr.checkpoint_pages */
+ { { PMDA_PMID(0,60), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Checkpoint pages/sec"
+ },
+/* sqlserver.buf_mgr.awe.lookup_maps */
+ { { PMDA_PMID(0,61), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\AWE lookup maps/sec"
+ },
+/* sqlserver.buf_mgr.awe.stolen_maps */
+ { { PMDA_PMID(0,62), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\AWE stolen maps/sec"
+ },
+/* sqlserver.buf_mgr.awe.write_maps */
+ { { PMDA_PMID(0,63), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\AWE write maps/sec"
+ },
+/* sqlserver.buf_mgr.awe.unmap_calls */
+ { { PMDA_PMID(0,64), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\AWE unmap calls/sec"
+ },
+/* sqlserver.buf_mgr.awe.unmap_pages */
+ { { PMDA_PMID(0,65), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\AWE unmap pages/sec"
+ },
+/* sqlserver.buf_mgr.page_life_expectancy */
+ { { PMDA_PMID(0,66), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_SEC, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Buffer Manager\\Page life expectancy"
+ },
+/* filesys.full */
+ { { PMDA_PMID(0,67), PM_TYPE_FLOAT, FILESYS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\LogicalDisk(*)\\% Free Space"
+ },
+/* disk.dev.idle */
+ { { PMDA_PMID(0,68), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\% Idle Time"
+ },
+/* sqlserver.locks.all.requests */
+ { { PMDA_PMID(0,69), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Lock Requests/sec"
+ },
+/* sqlserver.locks.all.waits */
+ { { PMDA_PMID(0,70), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Lock Waits/sec"
+ },
+/* sqlserver.locks.all.deadlocks */
+ { { PMDA_PMID(0,71), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Number of Deadlocks/sec"
+ },
+/* sqlserver.locks.all.timeouts */
+ { { PMDA_PMID(0,72), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Lock Timeouts/sec"
+ },
+/* sqlserver.locks.all.wait_time */
+ { { PMDA_PMID(0,73), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Lock Wait Time (ms)"
+ },
+/* sqlserver.locks.all.avg_wait_time */
+ { { PMDA_PMID(0,74), PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(_Total)\\Average Wait Time (ms)"
+ },
+/* sqlserver.locks.region.requests */
+ { { PMDA_PMID(0,75), PM_TYPE_U32, SQL_LOCK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Lock Requests/sec"
+ },
+/* sqlserver.locks.region.waits */
+ { { PMDA_PMID(0,76), PM_TYPE_U32, SQL_LOCK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Lock Waits/sec"
+ },
+/* sqlserver.locks.region.deadlocks */
+ { { PMDA_PMID(0,77), PM_TYPE_U32, SQL_LOCK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Number of Deadlocks/sec"
+ },
+/* sqlserver.locks.region.timeouts */
+ { { PMDA_PMID(0,78), PM_TYPE_U32, SQL_LOCK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Lock Timeouts/sec"
+ },
+/* sqlserver.locks.region.wait_time */
+ { { PMDA_PMID(0,79), PM_TYPE_U32, SQL_LOCK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Lock Wait Time (ms)"
+ },
+/* sqlserver.locks.region.avg_wait */
+ { { PMDA_PMID(0,80), PM_TYPE_FLOAT, SQL_LOCK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Locks(*)\\Average Wait Time (ms)"
+ },
+/* sqlserver.cache_mgr.all.cache_hit_ratio */
+ { { PMDA_PMID(0,81), PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(_Total)\\Cache Hit Ratio"
+ },
+/* sqlserver.cache_mgr.cache.cache_hit_ratio */
+ { { PMDA_PMID(0,82), PM_TYPE_FLOAT, SQL_CACHE_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(*)\\Cache Hit Ratio"
+ },
+/* sqlserver.connections */
+ { { PMDA_PMID(0,83), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:General Statistics\\User Connections"
+ },
+/* sqlserver.databases.all.transactions */
+ { { PMDA_PMID(0,84), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Transactions/sec"
+ },
+/* sqlserver.databases.db.transactions */
+ { { PMDA_PMID(0,85), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Transactions/sec"
+ },
+/* sqlserver.sql.batch_requests */
+ { { PMDA_PMID(0,86), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:SQL Statistics\\Batch Requests/sec"
+ },
+/* sqlserver.latches.waits */
+ { { PMDA_PMID(0,87), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Latches\\Latch Waits/sec"
+ },
+/* sqlserver.latches.wait_time */
+ { { PMDA_PMID(0,88), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Latches\\Total Latch Wait Time (ms)"
+ },
+/* sqlserver.latches.avg_wait_time */
+ { { PMDA_PMID(0,89), PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Latches\\Average Latch Wait Time (ms)"
+ },
+/* sqlserver.databases.all.data_file_size */
+ { { PMDA_PMID(0,90), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Data File(s) Size (KB)"
+ },
+/* sqlserver.databases.all.log_file_size */
+ { { PMDA_PMID(0,91), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Log File(s) Size (KB)"
+ },
+/* sqlserver.databases.all.log_file_used */
+ { { PMDA_PMID(0,92), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Log File(s) Used Size (KB)"
+ },
+/* sqlserver.databases.db.data_file_size */
+ { { PMDA_PMID(0,93), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Data File(s) Size (KB)"
+ },
+/* sqlserver.databases.db.log_file_size */
+ { { PMDA_PMID(0,94), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Log File(s) Size (KB)"
+ },
+/* sqlserver.databases.db.log_file_used */
+ { { PMDA_PMID(0,95), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Log File(s) Used Size (KB)"
+ },
+/* sqlserver.sql.compilations */
+ { { PMDA_PMID(0,96), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:SQL Statistics\\SQL Compilations/sec"
+ },
+/* sqlserver.sql.re_compilations */
+ { { PMDA_PMID(0,97), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:SQL Statistics\\SQL Re-Compilations/sec"
+ },
+/* sqlserver.access.full_scans */
+ { { PMDA_PMID(0,98), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Access Methods\\Full Scans/sec"
+ },
+/* sqlserver.access.pages_allocated */
+ { { PMDA_PMID(0,99), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Access Methods\\Pages Allocated/sec"
+ },
+/* sqlserver.access.table_lock_escalations */
+ { { PMDA_PMID(0,100), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Access Methods\\Table Lock Escalations/sec"
+ },
+/* disk.dev.queuelen */
+ { { PMDA_PMID(0,101), PM_TYPE_U32, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Current Disk Queue Length"
+ },
+/* sqlserver.databases.all.log_flushes */
+ { { PMDA_PMID(0,102), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Log Flushes/sec"
+ },
+/* sqlserver.databases.db.log_flushes */
+ { { PMDA_PMID(0,103), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Log Flushes/sec"
+ },
+/* sqlserver.databases.all.log_bytes_flushed */
+ { { PMDA_PMID(0,104), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Log Bytes Flushed/sec"
+ },
+/* sqlserver.databases.db.log_bytes_flushed */
+ { { PMDA_PMID(0,105), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Log Bytes Flushed/sec"
+ },
+/* hinv.physmem */
+ { { PMDA_PMID(0,106), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_MBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* hinv.ncpu */
+ { { PMDA_PMID(0,107), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* hinv.ndisk */
+ { { PMDA_PMID(0,108), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.distro */
+ { { PMDA_PMID(0,109), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.release */
+ { { PMDA_PMID(0,110), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.version */
+ { { PMDA_PMID(0,111), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.sysname */
+ { { PMDA_PMID(0,112), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.machine */
+ { { PMDA_PMID(0,113), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* kernel.uname.nodename */
+ { { PMDA_PMID(0,114), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* pmda.uname */
+ { { PMDA_PMID(0,115), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* pmda.version */
+ { { PMDA_PMID(0,116), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+
+/* filesys.capacity */
+ { { PMDA_PMID(0,117), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE,0,0) }, M_REDO, 0, 0, 0, NULL, ""
+ },
+/* filesys.used */
+ { { PMDA_PMID(0,118), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE,0,0) }, M_REDO, 0, 0, 0, NULL, ""
+ },
+/* filesys.free */
+ { { PMDA_PMID(0,119), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE,0,0) }, M_REDO, 0, 0, 0, NULL, ""
+ },
+/* dummy - filesys.free_space */
+ { { PMDA_PMID(0,120), PM_TYPE_U32, FILESYS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_MBYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\LogicalDisk(*)\\Free Megabytes"
+ },
+/* dummy - filesys.free_percent */
+ { { PMDA_PMID(0,121), PM_TYPE_FLOAT, FILESYS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\LogicalDisk(*)\\% Free Space"
+ },
+/* sqlserver.access.page_splits */
+ { { PMDA_PMID(0,122), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Access Methods\\Page Splits/sec"
+ },
+/* network.tcp.activeopens */
+ { { PMDA_PMID(0,123), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Connections Active"
+ },
+/* network.tcp.passiveopens */
+ { { PMDA_PMID(0,124), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Connections Passive"
+ },
+/* network.tcp.attemptfails */
+ { { PMDA_PMID(0,125), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Connection Failures"
+ },
+/* network.tcp.estabresets */
+ { { PMDA_PMID(0,126), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Connections Reset"
+ },
+/* network.tcp.currestab */
+ { { PMDA_PMID(0,127), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Connections Established"
+ },
+/* network.tcp.insegs */
+ { { PMDA_PMID(0,128), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Segments Received/sec"
+ },
+/* network.tcp.outsegs */
+ { { PMDA_PMID(0,129), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Segments Sent/sec"
+ },
+/* network.tcp.totalsegs */
+ { { PMDA_PMID(0,130), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Segments/sec"
+ },
+/* network.tcp.retranssegs */
+ { { PMDA_PMID(0,131), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\TCPv4\\Segments Retransmitted/sec"
+ },
+
+/* disk.all.split_io */
+ { { PMDA_PMID(0,132), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Split IO/Sec"
+ },
+/* disk.dev.split_io */
+ { { PMDA_PMID(0,133), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Split IO/Sec"
+ },
+
+/* sqlserver.databases.all.active_transactions */
+ { { PMDA_PMID(0,134), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(_Total)\\Active Transactions"
+ },
+/* sqlserver.databases.db.active_transactions */
+ { { PMDA_PMID(0,135), PM_TYPE_U32, SQL_DB_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, M_REDO | M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Databases(*)\\Active Transactions"
+ },
+
+/* mem.commit_limit */
+ { { PMDA_PMID(0,136), PM_TYPE_64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Commit Limit"
+ },
+/* mem.write_copies */
+ { { PMDA_PMID(0,137), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Write Copies/sec"
+ },
+/* mem.transition_faults */
+ { { PMDA_PMID(0,138), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Transition Faults/sec"
+ },
+/* mem.cache.faults */
+ { { PMDA_PMID(0,139), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Cache Faults/sec"
+ },
+/* mem.demand_zero_faults */
+ { { PMDA_PMID(0,140), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Demand Zero Faults/sec"
+ },
+/* mem.pages_total */
+ { { PMDA_PMID(0,141), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pages/sec"
+ },
+/* mem.page_reads */
+ { { PMDA_PMID(0,142), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Page Reads/sec"
+ },
+/* mem.pages_output */
+ { { PMDA_PMID(0,143), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pages Output/sec"
+ },
+/* mem.page_writes */
+ { { PMDA_PMID(0,144), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Page Writes/sec"
+ },
+/* mem.pool.paged_allocs */
+ { { PMDA_PMID(0,145), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pool Paged Allocs"
+ },
+/* mem.pool.nonpaged_allocs */
+ { { PMDA_PMID(0,146), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pool Nonpaged Allocs"
+ },
+/* mem.system.free_ptes */
+ { { PMDA_PMID(0,147), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Free System Page Table Entries"
+ },
+/* mem.cache.bytes */
+ { { PMDA_PMID(0,148), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Page Faults/sec"
+ },
+/* mem.cache.bytes_peak */
+ { { PMDA_PMID(0,149), PM_TYPE_64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Cache Bytes Peak"
+ },
+/* mem.pool.paged_resident_bytes */
+ { { PMDA_PMID(0,150), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\Pool Paged Resident Bytes"
+ },
+/* mem.system.total_code_bytes */
+ { { PMDA_PMID(0,151), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\System Code Total Bytes"
+ },
+/* mem.system.resident_code_bytes */
+ { { PMDA_PMID(0,152), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Memory\\System Code Resident Bytes"
+ },
+
+/* sqlserver.mem_mgr.connection_memory */
+ { { PMDA_PMID(0,153), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Connection Memory (KB)"
+ },
+/* sqlserver.mem_mgr.granted_workspace */
+ { { PMDA_PMID(0,154), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Granted Workspace Memory (KB)"
+ },
+/* sqlserver.mem_mgr.lock_memory */
+ { { PMDA_PMID(0,155), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Lock Memory (KB)"
+ },
+/* sqlserver.mem_mgr.lock_blocks_allocated */
+ { { PMDA_PMID(0,156), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Lock Blocks Allocated"
+ },
+/* sqlserver.mem_mgr.lock_owner_blocks_allocated */
+ { { PMDA_PMID(0,157), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Lock Owner Blocks Allocated"
+ },
+/* sqlserver.mem_mgr.lock_blocks */
+ { { PMDA_PMID(0,158), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Lock Blocks"
+ },
+/* sqlserver.mem_mgr.lock_owner_blocks */
+ { { PMDA_PMID(0,159), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Lock Owner Blocks"
+ },
+/* sqlserver.mem_mgr.maximum_workspace_memory */
+ { { PMDA_PMID(0,160), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Maximum Workspace Memory (KB)"
+ },
+/* sqlserver.mem_mgr.memory_grants_outstanding */
+ { { PMDA_PMID(0,161), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Memory Grants Outstanding"
+ },
+/* sqlserver.mem_mgr.memory_grants_pending */
+ { { PMDA_PMID(0,162), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Memory Grants Pending"
+ },
+/* sqlserver.mem_mgr.optimizer_memory */
+ { { PMDA_PMID(0,163), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Optimizer Memory (KB)"
+ },
+/* sqlserver.mem_mgr.sql_cache_memory */
+ { { PMDA_PMID(0,164), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\SQL Cache Memory (KB)"
+ },
+/* sqlserver.mem_mgr.target_server_memory */
+ { { PMDA_PMID(0,165), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Target Server Memory(KB)"
+ },
+/* sqlserver.mem_mgr.total_server_memory */
+ { { PMDA_PMID(0,166), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,PM_SPACE_KBYTE,0,0,0)
+ }, M_OPTIONAL | M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:Memory Manager\\Total Server Memory (KB)"
+ },
+/* sqlserver.cache_mgr.all.cache_pages */
+ { { PMDA_PMID(0,167), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(_Total)\\Cache Pages"
+ },
+/* sqlserver.cache_mgr.all.cache_object_count */
+ { { PMDA_PMID(0,168), PM_TYPE_32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(_Total)\\Cache Object Counts"
+ },
+/* sqlserver.cache_mgr.all.cache_use */
+ { { PMDA_PMID(0,169), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(_Total)\\Cache Use Counts/sec"
+ },
+/* sqlserver.cache_mgr.cache.cache_pages */
+ { { PMDA_PMID(0,170), PM_TYPE_U32, SQL_CACHE_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(*)\\Cache Pages"
+ },
+/* sqlserver.cache_mgr.cache.cache_object_count */
+ { { PMDA_PMID(0,171), PM_TYPE_32, SQL_CACHE_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(*)\\Cache Object Counts"
+ },
+/* sqlserver.cache_mgr.cache.cache_use */
+ { { PMDA_PMID(0,172), PM_TYPE_U32, SQL_CACHE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE) }, M_OPTIONAL, 0, 0, 0, NULL,
+ "\\SQLServer:Cache Manager(*)\\Cache Use Counts/sec"
+ },
+/* process.count */
+ { { PMDA_PMID(0,173), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\Objects\\Processes"
+ },
+/* process.psinfo.pid */
+ { { PMDA_PMID(0,174), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\ID Process"
+ },
+/* process.psinfo.ppid */
+ { { PMDA_PMID(0,175), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Creating Process ID"
+ },
+/* process.psinfo.cpu_time */
+ { { PMDA_PMID(0,176), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Process(*)\\% Processor Time"
+ },
+/* process.psinfo.elapsed_time */
+ { { PMDA_PMID(0,177), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Elapsed Time"
+ },
+/* process.psinfo.utime */
+ { { PMDA_PMID(0,178), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\% User Time"
+ },
+/* process.psinfo.stime */
+ { { PMDA_PMID(0,179), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\% Privileged Time"
+ },
+/* process.psinfo.nthreads */
+ { { PMDA_PMID(0,180), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Thread Count"
+ },
+/* process.psinfo.priority_base */
+ { { PMDA_PMID(0,181), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Priority Base"
+ },
+/* process.psinfo.nhandles */
+ { { PMDA_PMID(0,182), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Handle Count"
+ },
+/* process.psinfo.page_faults */
+ { { PMDA_PMID(0,183), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Page Faults/sec"
+ },
+/* process.memory.size */
+ { { PMDA_PMID(0,184), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Pool Paged Bytes"
+ },
+/* process.memory.rss */
+ { { PMDA_PMID(0,185), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Working Set"
+ },
+/* process.memory.rss_peak */
+ { { PMDA_PMID(0,186), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Working Set Peak"
+ },
+/* process.memory.virtual */
+ { { PMDA_PMID(0,187), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Virtual Bytes"
+ },
+/* process.memory.virtual_peak */
+ { { PMDA_PMID(0,188), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Virtual Bytes Peak"
+ },
+/* process.memory.page_file */
+ { { PMDA_PMID(0,189), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Page File Bytes"
+ },
+/* process.memory.page_file_peak */
+ { { PMDA_PMID(0,190), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Page File Bytes Peak"
+ },
+/* process.memory.private */
+ { { PMDA_PMID(0,191), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Private Bytes"
+ },
+/* process.memory.pool_paged */
+ { { PMDA_PMID(0,192), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Pool Paged Bytes"
+ },
+/* process.memory.pool_nonpaged */
+ { { PMDA_PMID(0,193), PM_TYPE_U32, PROCESS_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\Pool Nonpaged Bytes"
+ },
+/* process.io.reads */
+ { { PMDA_PMID(0,194), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Read Operations/sec"
+ },
+/* process.io.writes */
+ { { PMDA_PMID(0,195), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Write Operations/sec"
+ },
+/* process.io.data */
+ { { PMDA_PMID(0,196), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Data Operations/sec"
+ },
+/* process.io.other */
+ { { PMDA_PMID(0,197), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Other Operations/sec"
+ },
+/* process.io.read_bytes */
+ { { PMDA_PMID(0,198), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Read Bytes/sec"
+ },
+/* process.io.write_bytes */
+ { { PMDA_PMID(0,199), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Write Bytes/sec"
+ },
+/* process.io.data_bytes */
+ { { PMDA_PMID(0,200), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Data Bytes/sec"
+ },
+/* process.io.other_bytes */
+ { { PMDA_PMID(0,201), PM_TYPE_U64, PROCESS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Process(*)\\IO Other Bytes/sec"
+ },
+/* process.thread.context_switches */
+ { { PMDA_PMID(0,202), PM_TYPE_U32, THREAD_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Context Switches/sec"
+ },
+/* process.thread.cpu_time */
+ { { PMDA_PMID(0,203), PM_TYPE_U64, THREAD_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\% Processor Time"
+ },
+/* process.thread.utime */
+ { { PMDA_PMID(0,204), PM_TYPE_U64, THREAD_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\% User Time"
+ },
+/* process.thread.stime */
+ { { PMDA_PMID(0,205), PM_TYPE_U64, THREAD_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\% Privileged Time"
+ },
+/* process.thread.elapsed_time */
+ { { PMDA_PMID(0,206), PM_TYPE_U64, THREAD_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Elapsed Time"
+ },
+/* process.thread.priority */
+ { { PMDA_PMID(0,207), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Priority Current"
+ },
+/* process.thread.priority_base */
+ { { PMDA_PMID(0,208), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Priority Base"
+ },
+/* process.thread.start_address */
+ { { PMDA_PMID(0,209), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Start Address"
+ },
+/* process.thread.state */
+ { { PMDA_PMID(0,210), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Thread State"
+ },
+/* process.thread.wait_reason */
+ { { PMDA_PMID(0,211), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\Thread Wait Reason"
+ },
+/* process.thread.process_id */
+ { { PMDA_PMID(0,212), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\ID Process"
+ },
+/* process.thread.thread_id */
+ { { PMDA_PMID(0,213), PM_TYPE_U32, THREAD_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\Thread(*)\\ID Thread"
+ },
+
+/* disk.all.read_time */
+ { { PMDA_PMID(0,214), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\% Disk Read Time"
+ },
+/* disk.all.write_time */
+ { { PMDA_PMID(0,215), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\% Disk Write Time"
+ },
+/* disk.all.total_time */
+ { { PMDA_PMID(0,216), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\% Disk Time"
+ },
+/* disk.dev.read_time */
+ { { PMDA_PMID(0,217), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\% Disk Read Time"
+ },
+/* disk.dev.write_time */
+ { { PMDA_PMID(0,218), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\% Disk Write Time"
+ },
+/* disk.dev.total_time */
+ { { PMDA_PMID(0,219), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\% Disk Time"
+ },
+/* disk.all.average.read_bytes */
+ { { PMDA_PMID(0,220), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk Bytes/Read"
+ },
+/* disk.all.average.write_bytes */
+ { { PMDA_PMID(0,221), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk Bytes/Write"
+ },
+/* disk.all.average.total_bytes */
+ { { PMDA_PMID(0,222), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk Bytes/Transfer"
+ },
+/* disk.all.average.read_time */
+ { { PMDA_PMID(0,223), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk sec/Read"
+ },
+/* disk.all.average.write_time */
+ { { PMDA_PMID(0,224), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk sec/Write"
+ },
+/* disk.all.average.total_time */
+ { { PMDA_PMID(0,225), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_NONE, 0, 0, 0, NULL,
+ "\\PhysicalDisk(_Total)\\Avg. Disk sec/Transfer"
+ },
+/* disk.dev.average.read_bytes */
+ { { PMDA_PMID(0,226), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk Bytes/Read"
+ },
+/* disk.dev.write_bytes */
+ { { PMDA_PMID(0,227), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk Bytes/Write"
+ },
+/* disk.dev.total_bytes */
+ { { PMDA_PMID(0,228), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk Bytes/Transfer"
+ },
+/* disk.dev.average.read_time */
+ { { PMDA_PMID(0,229), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk sec/Read"
+ },
+/* disk.dev.average.write_time */
+ { { PMDA_PMID(0,230), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk sec/Write"
+ },
+/* disk.dev.average.total_time */
+ { { PMDA_PMID(0,231), PM_TYPE_U64, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_USEC, 0) }, M_REDO, 0, 0, 0, NULL,
+ "\\PhysicalDisk(*)\\Avg. Disk sec/Transfer"
+ },
+
+/* hinv.nfilesys */
+ { { PMDA_PMID(0,232), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+/* hinv.pagesize */
+ { { PMDA_PMID(0,233), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_NONE, 0, 0, 0, NULL, ""
+ },
+
+/* kernel.all.uptime */
+ { { PMDA_PMID(0,234), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,1,0,0,PM_TIME_SEC,0) }, M_REDO, 0, 0, 0, NULL,
+ "\\System\\System Up Time"
+ },
+
+/* network.interface.bandwidth */
+ { { PMDA_PMID(0,235), PM_TYPE_U32, NETIF_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, -1, 0, 0, PM_TIME_SEC, 0)
+ }, M_REDO | M_AUTO64, 0, 0, 0, NULL,
+ "\\Network Interface(*)\\Current Bandwidth"
+ },
+/* network.interface.speed */
+ { { PMDA_PMID(0,236), PM_TYPE_FLOAT, NETIF_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, -1, 0, PM_SPACE_MBYTE, PM_TIME_SEC, 0)
+ }, M_REDO, 0, 0, 0, NULL, ""
+ },
+/* network.interface.baudrate */
+ { { PMDA_PMID(0,237), PM_TYPE_U32, NETIF_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, -1, 0, PM_SPACE_BYTE, PM_TIME_SEC, 0)
+ }, M_REDO, 0, 0, 0, NULL, ""
+ },
+
+/* sqlserver.user_settable.query */
+ { { PMDA_PMID(0,238), PM_TYPE_U32, SQL_USER_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0,0,0,0,0,0) }, M_AUTO64, 0, 0, 0, NULL,
+ "\\SQLServer:User Settable(*)\\Query"
+ },
+
+/* mem.physmem */
+ { { PMDA_PMID(1,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "The amount of actual physical memory"
+ },
+/* mem.freemem */
+ { { PMDA_PMID(1,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "The amount of physical memory currently available"
+ },
+/* mem.util.load */
+ { { PMDA_PMID(1,2), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "Approximate percentage of physical memory in use"
+ },
+/* mem.util.used */
+ { { PMDA_PMID(1,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "Amount of physical memory in use"
+ },
+/* mem.util.free */
+ { { PMDA_PMID(1,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "Amount of physical memory currently available"
+ },
+/* swap.length */
+ { { PMDA_PMID(1,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "The current committed memory limit for the system"
+ },
+/* swap.used */
+ { { PMDA_PMID(1,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "The current committed memory for the system"
+ },
+/* swap.free */
+ { { PMDA_PMID(1,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0) }, M_NONE, 0, 0, 0, NULL,
+ "The maximum amount of memory the system can commit"
+ },
+};
+int metricdesc_sz = sizeof(metricdesc) / sizeof(metricdesc[0]);
+
+static int
+windows_instance(pmInDom indom, int inst, char *name, __pmInResult **result, pmdaExt *pmda)
+{
+ windows_instance_refresh(indom);
+ return pmdaInstance(indom, inst, name, result, pmda);
+}
+
+static int
+windows_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda)
+{
+ windows_fetch_refresh(numpmid, pmidlist, pmda);
+ return pmdaFetch(numpmid, pmidlist, resp, pmda);
+}
+
+static pdh_value_t *
+find_instance_value(unsigned int item, unsigned int inst)
+{
+ pdh_metric_t *mp = &metricdesc[item];
+ int i;
+
+ /* fast check for direct mapped instance ID */
+ if (inst < mp->num_vals && mp->vals[inst].inst == inst)
+ return (mp->vals[inst].flags & V_COLLECTED) ? &mp->vals[inst] : NULL;
+
+ /* scan iteratively through instance IDs looking for this one */
+ for (i = 0; i < mp->num_vals; i++) {
+ if (mp->vals[i].inst != inst)
+ continue;
+ if (!(mp->vals[i].flags & V_COLLECTED))
+ break;
+ return &mp->vals[i];
+ }
+ return NULL;
+}
+
+static int
+filesys_fetch_callback(unsigned int item, unsigned int inst, pmAtomValue *atom)
+{
+ pdh_value_t *vp;
+ unsigned long long used, avail, capacity;
+ float used_space, free_space, free_percent;
+
+ /*
+ * Special case handling for the derived filesystem metrics
+ * which map the PDH services semantics for some metrics to
+ * the usual metrics from other platforms.
+ * 67 filesys.full
+ * 117 filesys.capacity
+ * 118 filesys.used
+ * 119 filesys.free
+ * 120 dummy metric, metricdesc holds FreeMB
+ * 121 dummy metric, metricdesc holds %Free
+ */
+ if (item == 67) { /* filesys.full, metricdesc holds %Free */
+ vp = find_instance_value(item, inst);
+ if (!vp)
+ return 0;
+ atom->f = (1.0 - vp->atom.f) * 100.0;
+ return 1;
+ }
+
+ vp = find_instance_value(120,inst); /* dummy, metricdesc holds FreeMB */
+ if (!vp)
+ return 0;
+ free_space = ((float)vp->atom.ul);
+
+ vp = find_instance_value(121,inst); /* dummy, metricdesc holds %Free */
+ if (!vp)
+ return 0;
+ free_percent = vp->atom.f;
+
+ used_space = (free_space / free_percent) - free_space;
+ used = 1024 * (unsigned long long)used_space; /* MB to KB */
+ avail = 1024 * (unsigned long long)free_space; /* MB to KB */
+ capacity = used + avail;
+
+ if (item == 117) /* filesys.capacity */
+ atom->ull = capacity;
+ else if (item == 118) /* filesys.used */
+ atom->ull = used;
+ else if (item == 119) /* filesys.free */
+ atom->ull = avail;
+ return 1;
+}
+
+static int
+network_fetch_callback(unsigned int item, unsigned int inst, pmAtomValue *atom)
+{
+ pdh_value_t *vp;
+
+ /*
+ * Special case handling for the derived network bandwidth metrics
+ * 235 network.interface.bandwidth (base, no derived)
+ * 236 network.interface.speed (mbytes, float)
+ * 237 network.interface.baudrate (in bytes)
+ */
+ vp = find_instance_value(235,inst);
+ if (!vp)
+ return 0;
+ if (item == 236)
+ atom->f = ((float)vp->atom.ull / 8 / 1024 / 1024);
+ else if (item == 237)
+ atom->ul = (vp->atom.ull / 8);
+ return 1;
+}
+
+static int
+memstat_fetch_callback(unsigned int item, unsigned int inst, pmAtomValue *atom)
+{
+ if (inst == PM_INDOM_NULL) {
+ switch (item) {
+ case 0: /* mem.physmem */
+ atom->ull = windows_memstat.ullTotalPhys / 1024;
+ return 1;
+ case 1: /* mem.freemem */
+ case 4: /* mem.util.free */
+ atom->ull = windows_memstat.ullAvailPhys / 1024;
+ return 1;
+ case 2: /* mem.util.load */
+ atom->ul = windows_memstat.dwMemoryLoad;
+ return 1;
+ case 3: /* mem.util.used */
+ atom->ull = windows_memstat.ullTotalPhys;
+ atom->ull =- windows_memstat.ullAvailPhys;
+ atom->ull /= 1024;
+ return 1;
+ case 5: /* swap.length */
+ atom->ull = windows_memstat.ullTotalPageFile / 1024;
+ return 1;
+ case 6: /* swap.used */
+ atom->ull = windows_memstat.ullTotalPageFile;
+ atom->ull -= windows_memstat.ullAvailPageFile;
+ atom->ull /= 1024;
+ return 1;
+ case 7: /* swap.free */
+ atom->ull = windows_memstat.ullAvailPageFile / 1024;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static int
+windows_fetch_callback(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom)
+{
+ __pmID_int *pmidp = (__pmID_int *)&mdesc->m_desc.pmid;
+ pdh_value_t *vp;
+
+ if (pmidp->cluster == 1)
+ return memstat_fetch_callback(pmidp->item, inst, atom);
+
+ if (pmidp->cluster != 0 || pmidp->item > metricdesc_sz ||
+ (pmidp->item == 120 || pmidp->item == 121)) /* dummies */
+ return PM_ERR_PMID;
+
+ /*
+ * Check if its one of the derived metrics, or one that doesn't use PDH
+ */
+ switch (pmidp->item) {
+ case 106: /* hinv.physmem */
+ atom->ul = (windows_memstat.ullTotalPhys / (1024 * 1024));
+ return 1;
+ case 107: /* hinv.ncpu */
+ atom->ul = pmdaCacheOp(INDOM(pmidp->domain, CPU_INDOM),
+ PMDA_CACHE_SIZE_ACTIVE);
+ return 1;
+ case 108: /* hinv.ndisk */
+ atom->ul = pmdaCacheOp(INDOM(pmidp->domain, DISK_INDOM),
+ PMDA_CACHE_SIZE_ACTIVE);
+ return 1;
+ case 109: /* kernel.uname.distro */
+ atom->cp = windows_uname;
+ return 1;
+ case 110: /* kernel.uname.release */
+ atom->cp = windows_build;
+ return 1;
+ case 111: /* kernel.uname.version */
+ atom->cp = windows_build;
+ return 1;
+ case 112: /* kernel.uname.sysname */
+ atom->cp = "Windows";
+ return 1;
+ case 113: /* kernel.uname.machine */
+ atom->cp = windows_machine;
+ return 1;
+ case 114: /* kernel.uname.nodename */
+ atom->cp = "?";
+ return 1;
+ case 115: /* pmda.uname */
+ atom->cp = windows_uname;
+ return 1;
+ case 116: /* pmda.version */
+ atom->cp = pmGetConfig("PCP_VERSION");
+ return 1;
+ case 67: case 117: case 118: case 119:
+ return filesys_fetch_callback(pmidp->item, inst, atom);
+ case 232: /* hinv.nfilesys */
+ atom->ul = pmdaCacheOp(INDOM(pmidp->domain, FILESYS_INDOM),
+ PMDA_CACHE_SIZE_ACTIVE);
+ return 1;
+ case 233: /* hinv.pagesize */
+ atom->ul = windows_pagesize;
+ return 1;
+ case 236: case 237:
+ return network_fetch_callback(pmidp->item, inst, atom);
+ }
+
+ /*
+ * All other (most) metrics will go through this path
+ */
+ vp = find_instance_value(pmidp->item, inst);
+ if (!vp)
+ return 0;
+ *atom = vp->atom;
+ return 1;
+}
+
+/*
+ * Initialise the agent.
+ */
+void
+windows_init(pmdaInterface *dp)
+{
+ static pmdaMetric *metrictab;
+ char helppath[MAXPATHLEN];
+ int metrictab_sz = metricdesc_sz;
+ int i, sep = __pmPathSeparator();
+
+ snprintf(helppath, sizeof(helppath), "%s%c" "windows" "%c" "help",
+ pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
+ pmdaDSO(dp, PMDA_INTERFACE_3, "windows DSO", helppath);
+ if (dp->status != 0)
+ return;
+
+ /* Create the PMDA's metrictab[] version of the per-metric table */
+ metrictab = (pmdaMetric *)malloc(metrictab_sz * sizeof(pmdaMetric));
+ if (metrictab == NULL) {
+ fprintf(stderr, "Error: malloc metrictab [%d] failed: %s\n",
+ metrictab_sz * sizeof(pmdaMetric), osstrerror());
+ return;
+ }
+
+ /* rewrite pmid & indom, now that we know what the domain number is */
+ for (i = 0; i < metrictab_sz; i++) {
+ pdh_metric_t *mp = &metricdesc[i];
+ pmID pmid = mp->desc.pmid;
+ mp->desc.pmid = pmid_build(dp->domain, pmid_cluster(pmid), pmid_item(pmid));
+ if (mp->desc.indom != PM_INDOM_NULL)
+ mp->desc.indom = INDOM(dp->domain, mp->desc.indom);
+ }
+
+ windows_open(dp->domain);
+
+ /* write the metrictab entry for this metric, descriptor now setup */
+ for (i = 0; i < metrictab_sz; i++) {
+ metrictab[i].m_desc = metricdesc[i].desc;
+ metrictab[i].m_user = NULL;
+ }
+
+ dp->version.two.fetch = windows_fetch;
+ dp->version.two.instance = windows_instance;
+ dp->version.two.text = windows_help;
+ pmdaSetFetchCallBack(dp, windows_fetch_callback);
+ pmdaInit(dp, NULL, 0, metrictab, metrictab_sz);
+}