Skip to content

Commit

Permalink
Add Kerberos stats
Browse files Browse the repository at this point in the history
Fixes #68

Signed-Off-By: Robert Clark <robert.d.clark@hpe.com>
  • Loading branch information
Robert Clark committed Jun 22, 2017
1 parent 296cb5b commit bcc70e3
Showing 1 changed file with 114 additions and 8 deletions.
122 changes: 114 additions & 8 deletions sources/procfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,24 @@ const (
rpcsInFlightHelp string = "Current number of RPCs that are processing during the snapshot."
offsetHelp string = "Current RPC offset by size."

// Help text dedicated to the 'encrypt_page_pools' file
physicalPagesHelp string = "Capacity of physical memory."
pagesPerPoolHelp string = "Number of pages per pool."
maxPagesHelp string = "Maximum number of pages that can be held."
maxPoolsHelp string = "Number of pools."
totalPagesHelp string = "Number of pages in all pools."
totalFreeHelp string = "Current number of pages available."
maxPagesReachedHelp string = "Total number of pages reached."
growsHelp string = "Total number of grows."
growsFailureHelp string = "Total number of failures while attempting to add pages."
shrinksHelp string = "Total number of shrinks."
cacheAccessHelp string = "Total number of times cache has been accessed."
cacheMissingHelp string = "Total number of cache misses."
lowFreeMarkHelp string = "Lowest number of free pages reached."
maxWaitQueueDepthHelp string = "Maximum waitqueue length."
maxWaitTimeHelp string = "Maximum wait time in jiffies."
outOfMemHelp string = "Total number of out of memory requests."

// string mappings for 'health_check' values
healthCheckHealthy string = "1"
healthCheckUnhealthy string = "0"
Expand Down Expand Up @@ -146,6 +164,24 @@ func (s *lustreProcfsSource) generateOSTMetricTemplates() {
{"pool/shrink_request", "shrink_requests_total", "Number of shrinks that have been requested", s.counterMetric, false},
{"pool/slv", "server_lock_volume", "Current value for server lock volume (SLV)", s.gaugeMetric, false},
},
"sptlrpc": {
{"encrypt_page_pools", "physical_pages_total", physicalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_per_pool_total", pagesPerPoolHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages", maxPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pools", maxPoolsHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_currently_in_pools", totalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "free_pages", totalFreeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages_reached_total", maxPagesReachedHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_total", growsHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_failure_total", growsFailureHelp, s.counterMetric, false},
{"encrypt_page_pools", "shrinks_total", shrinksHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_access_total", cacheAccessHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_missing_total", cacheMissingHelp, s.counterMetric, false},
{"encrypt_page_pools", "lowest_free_pages", lowFreeMarkHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_waitqueue_depth", maxWaitQueueDepthHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_wait_time_jiffies", maxWaitTimeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "out_of_memory_request_total", outOfMemHelp, s.counterMetric, false},
},
}
for path := range metricMap {
for _, item := range metricMap[path] {
Expand Down Expand Up @@ -182,6 +218,24 @@ func (s *lustreProcfsSource) generateMGSMetricTemplates() {
{"kbytestotal", "capacity_kilobytes", "Capacity of the pool in kilobytes", s.gaugeMetric, false},
{"quota_iused_estimate", "quota_iused_estimate", "Returns '1' if a valid address is returned within the pool, referencing whether free space can be allocated", s.gaugeMetric, false},
},
"sptlrpc": {
{"encrypt_page_pools", "physical_pages_total", physicalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_per_pool_total", pagesPerPoolHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages", maxPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pools", maxPoolsHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_currently_in_pools", totalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "free_pages", totalFreeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages_reached_total", maxPagesReachedHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_total", growsHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_failure_total", growsFailureHelp, s.counterMetric, false},
{"encrypt_page_pools", "shrinks_total", shrinksHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_access_total", cacheAccessHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_missing_total", cacheMissingHelp, s.counterMetric, false},
{"encrypt_page_pools", "lowest_free_pages", lowFreeMarkHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_waitqueue_depth", maxWaitQueueDepthHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_wait_time_jiffies", maxWaitTimeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "out_of_memory_request_total", outOfMemHelp, s.counterMetric, false},
},
}
for path := range metricMap {
for _, item := range metricMap[path] {
Expand All @@ -202,6 +256,24 @@ func (s *lustreProcfsSource) generateMDSMetricTemplates() {
{"kbytestotal", "capacity_kilobytes", "Capacity of the pool in kilobytes", s.gaugeMetric, false},
{"quota_iused_estimate", "quota_iused_estimate", "Returns '1' if a valid address is returned within the pool, referencing whether free space can be allocated", s.gaugeMetric, false},
},
"sptlrpc": {
{"encrypt_page_pools", "physical_pages_total", physicalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_per_pool_total", pagesPerPoolHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages", maxPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pools", maxPoolsHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_currently_in_pools", totalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "free_pages", totalFreeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages_reached_total", maxPagesReachedHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_total", growsHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_failure_total", growsFailureHelp, s.counterMetric, false},
{"encrypt_page_pools", "shrinks_total", shrinksHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_access_total", cacheAccessHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_missing_total", cacheMissingHelp, s.counterMetric, false},
{"encrypt_page_pools", "lowest_free_pages", lowFreeMarkHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_waitqueue_depth", maxWaitQueueDepthHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_wait_time_jiffies", maxWaitTimeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "out_of_memory_request_total", outOfMemHelp, s.counterMetric, false},
},
}
for path := range metricMap {
for _, item := range metricMap[path] {
Expand Down Expand Up @@ -248,6 +320,24 @@ func (s *lustreProcfsSource) generateClientMetricTemplates() {
{"rpc_stats", "rpcs_in_flight", rpcsInFlightHelp, s.gaugeMetric, true},
{"rpc_stats", "rpcs_offset", offsetHelp, s.gaugeMetric, false},
},
"sptlrpc": {
{"encrypt_page_pools", "physical_pages_total", physicalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_per_pool_total", pagesPerPoolHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages", maxPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pools", maxPoolsHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "pages_currently_in_pools", totalPagesHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "free_pages", totalFreeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_pages_reached_total", maxPagesReachedHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_total", growsHelp, s.counterMetric, false},
{"encrypt_page_pools", "grows_failure_total", growsFailureHelp, s.counterMetric, false},
{"encrypt_page_pools", "shrinks_total", shrinksHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_access_total", cacheAccessHelp, s.counterMetric, false},
{"encrypt_page_pools", "cache_missing_total", cacheMissingHelp, s.counterMetric, false},
{"encrypt_page_pools", "lowest_free_pages", lowFreeMarkHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_waitqueue_depth", maxWaitQueueDepthHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "maximum_wait_time_jiffies", maxWaitTimeHelp, s.gaugeMetric, false},
{"encrypt_page_pools", "out_of_memory_request_total", outOfMemHelp, s.counterMetric, false},
},
}
for path := range metricMap {
for _, item := range metricMap[path] {
Expand Down Expand Up @@ -400,14 +490,30 @@ func getStatsIOMetrics(statsFile string, promName string, helpText string) (metr
// bytesString: {name} {number of samples} 'samples' [{units}] {minimum} {maximum} {sum}
// bytesSplit: [0] [1] [2] [3] [4] [5] [6]
bytesMap := map[string]multistatParsingStruct{
readSamplesHelp: {pattern: "read_bytes .*", index: 1},
readMinimumHelp: {pattern: "read_bytes .*", index: 4},
readMaximumHelp: {pattern: "read_bytes .*", index: 5},
readTotalHelp: {pattern: "read_bytes .*", index: 6},
writeSamplesHelp: {pattern: "write_bytes .*", index: 1},
writeMinimumHelp: {pattern: "write_bytes .*", index: 4},
writeMaximumHelp: {pattern: "write_bytes .*", index: 5},
writeTotalHelp: {pattern: "write_bytes .*", index: 6},
readSamplesHelp: {pattern: "read_bytes .*", index: 1},
readMinimumHelp: {pattern: "read_bytes .*", index: 4},
readMaximumHelp: {pattern: "read_bytes .*", index: 5},
readTotalHelp: {pattern: "read_bytes .*", index: 6},
writeSamplesHelp: {pattern: "write_bytes .*", index: 1},
writeMinimumHelp: {pattern: "write_bytes .*", index: 4},
writeMaximumHelp: {pattern: "write_bytes .*", index: 5},
writeTotalHelp: {pattern: "write_bytes .*", index: 6},
physicalPagesHelp: {pattern: "physical pages: .*", index: 2},
pagesPerPoolHelp: {pattern: "pages per pool: .*", index: 3},
maxPagesHelp: {pattern: "max pages: .*", index: 2},
maxPoolsHelp: {pattern: "max pools: .*", index: 2},
totalPagesHelp: {pattern: "total pages: .*", index: 2},
totalFreeHelp: {pattern: "total free: .*", index: 2},
maxPagesReachedHelp: {pattern: "max pages reached: .*", index: 3},
growsHelp: {pattern: "grows: .*", index: 1},
growsFailureHelp: {pattern: "grows failure: .*", index: 2},
shrinksHelp: {pattern: "shrinks: .*", index: 1},
cacheAccessHelp: {pattern: "cache access: .*", index: 2},
cacheMissingHelp: {pattern: "cache missing: .*", index: 2},
lowFreeMarkHelp: {pattern: "low free mark: .*", index: 3},
maxWaitQueueDepthHelp: {pattern: "max waitqueue depth: .*", index: 3},
maxWaitTimeHelp: {pattern: "max wait time: .*", index: 3},
outOfMemHelp: {pattern: "out of mem: .*", index: 3},
}
pattern := bytesMap[helpText].pattern
bytesString := regexCaptureString(pattern, statsFile)
Expand Down

0 comments on commit bcc70e3

Please sign in to comment.