Getting ColdFusion Server Metrics

by Pete Freitag

The often forgoten function GetMetricData() function returns the same info as the cfstat utility. Here's an example:

<cfset metrics = GetMetricData("PERF_MONITOR")>
<cfoutput>
  ColdFusion Server Metrics: <br>
  <br>
  InstanceName: #metrics.InstanceName# <br>
  PageHits: #metrics.PageHits# <br>
  ReqQueued: #metrics.ReqQueued# <br>
  DBHits: #metrics.DBHits# <br>
  ReqRunning: #metrics.ReqRunning# <br>
  ReqTimedOut: #metrics.ReqTimedOut# <br>
  BytesIn: #metrics.BytesIn# <br>
  BytesOut: #metrics.BytesOut# <br>
  AvgQueueTime: #metrics.AvgQueueTime# <br>
  AvgReqTime: #metrics.AvgReqTime# <br>
  AvgDBTime: #metrics.AvgDBTime# <br>
  CachePops: #metrics.CachePops# <br>
  Simple Load: #GetMetricData("SIMPLE_LOAD")#<br>
  Prev Request Time: #GetMetricData("PREV_REQ_TIME")#ms<br>
  Avg Request Time: #GetMetricData("AVG_REQ_TIME")#ms<br>
</cfoutput>

I had always thought it would be interesting to write a scheduled task to record these values in a database, and then generate reports.

The Fixinator Code Security Scanner for ColdFusion & CFML is an easy to use security tool that every CF developer can use. It can also easily integrate into CI for automatic scanning on every commit.

Comments

Brian

Interesting, running this on a CF5 server seems to restart the CF service. Any idea why?

Pete Freitag

No idea, that should work on a CF5 server as well.

Matt

Will the GetMetricData() work on the J2EE version of MX?

Craig M. Rosenblum

Does this work on cf 8 standard?

Pete Freitag

@Craig - Yes it does work on CF 8 Standard.