# Using R to detect growth in perfmon resource metrics

I have started using the statistical package R to detect any trends in performance test data. In this example I am looking to detect windows perfmon metrics that increase over the duration of a performance test.

You can install R an open source statistical analysis package from here http://www.r-project.org/

The code below can be cut and pasted into the R gui command line but you will have to change the first line of the script to use the directory holding the data file (procs.csv).

The comments should give you an idea what it is doing..

`setwd("C:\\Documents and Settings\\alee\\My Documents\\Projects\\youProject\\")`

`# Load the Data isetednto a Data Frame`

`pData <- read.csv("procs.csv",sep=",",header=TRUE)`

`NumOfCols <- length(names(pData))`

`# Create a metrix to hold the gradients`

`slope <- 1:NumOfCols`

`# Loop through the metrics and calculate the slope`

`for(i in 2:NumOfCols ) {`
`x <- 1:length(pData[[i]])`
`y <- pData[[i]]`
`# Ignore any blank columns`
`if ( is.na(y[]) )`
`{slope[[i]] <- NA }`
`else`
`{`
`fit <- lm( y ~ x)`
`slope[[i]] <- fit[][]`
`}`
`}`

`results=data.frame(metric=names(pData),Co=slope,OrgOrder=1:NumOfCols)`

`OrderResults <- results[order(-results\$Co),]`

`#plot top 5 growing metrics`

`for(i in 1:5)`
`{`
`OrderResults[i,3]`
`plot(pData[[OrderResults[i,3]]],type="o",col="blue")`
`title(main=names(pData[OrderResults[i,3]]), col.main="black", font.main=4)`
`# Prompt for Enter so plot stays on screen long enough to be read`
`readline(prompt = "Pause. Press to continue...")`
```} ```