{"id":521,"date":"2008-04-16T12:15:30","date_gmt":"2008-04-16T10:15:30","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/"},"modified":"2008-04-16T12:15:30","modified_gmt":"2008-04-16T10:15:30","slug":"using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/","title":{"rendered":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007"},"content":{"rendered":"<div class=\"ExternalClass99F34DBEF33E410884EA10EBF03301D5\">\n<p>It is pretty easy to use data collected by Performance monitors in Counter objects within OpsMgr 2007. You can create graphs, create rules\/monitors alerts, etc<\/p>\n<p>But you can do the same with any type of information that can be gathered by e.g. a vbs vbscript <\/p>\n<p>Suppose you want to monitor the number of files in a given folder, and use this in a graph, then this is what you should do :<\/p>\n<p>&#160;<\/p>\n<p>First, you need to build a script that will return the collected data in a property bag, so you can use it as it is was performance collection data<\/p>\n<p>A basic script to monitor the number of files in a given folder could look like this :<\/p>\n<p>&#160;<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"742\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"740\">\n<p><font face=\"Courier New\" size=\"1\">Option Explicit                <br \/>'                 <br \/>' Script that monitors the returns the number of files in a given folder (parameter 1)                 <br \/>' Written by Peter Van Eeckhoutte                 <br \/>' <\/font><a href=\"\/\"><font face=\"Courier New\" size=\"1\">https:\/\/petersblog.dyndns.org:8899<\/font><\/a>               <br \/><font face=\"Courier New\" size=\"1\">' peter.ve@telenet.be                <br \/>' April 2008                 <br \/>' version 1.0                 <br \/>'                 <br \/>' The script should be called with the following parameters (separate parameters with a single blank space)                 <br \/>' Parameter 1 : absolute path to the folder that needs to be monitored.&#160; Make sure to put the path between double quotes                 <br \/>' <\/font><\/p>\n<p><font face=\"Courier New\" size=\"1\">Dim oArgs                <br \/>Set oArgs = Wscript.Arguments                 <br \/>Dim oAPI                 <br \/>Set oAPI = CreateObject(&quot;MOM.ScriptAPI&quot;) <\/font><\/p>\n<p><font face=\"Courier New\" size=\"1\">if oArgs.Count &lt; 1 Then                <br \/>&#160;&#160;&#160; ' If the script is called without the required argument,                 <br \/>&#160;&#160;&#160; ' create an information event and then quit.                 <br \/>&#160;&#160;&#160; Call oAPI.LogScriptEvent(WScript.ScriptName,851,0,WScript.ScriptName+&quot; script was called without the necessary argument and was not executed. You need to specify the absolute path to the folder that needs to be monitored&quot;)                 <br \/>&#160;&#160;&#160; Wscript.Quit -1                 <br \/>&#160;&#160;&#160; Else                 <br \/>&#160;&#160;&#160; Call oAPI.LogScriptEvent(WScript.ScriptName,951,0,WScript.ScriptName+&quot; script was launched successfully&quot;)                 <br \/>End If                 <br \/>'                 <br \/>Dim oFso                 <br \/>Dim oBag                 <br \/>Dim NrOfFiles                 <br \/>'                 <br \/>'                 <br \/>Set oFso = CreateObject(&quot;Scripting.FileSystemObject&quot;) <\/font><\/p>\n<p><font face=\"Courier New\" size=\"1\">If oFso.FolderExists(oArgs(0)) Then                <br \/>&#160; NrOfFiles=oFso.GetFolder(oArgs(0)).Files.Count                 <br \/>&#160; Else                 <br \/>&#160;&#160; NrOfFiles=0                 <br \/>End If                 <br \/>Set oBag = oAPI.CreatePropertyBag() <\/font><\/p>\n<p><font face=\"Courier New\" size=\"1\">Call oBag.AddValue(&quot;NrOfFiles&quot;,NrOfFiles)                <br \/>Call oAPI.LogScriptEvent(WScript.ScriptName,890,0,&quot;Files found in &quot; &amp; oArgs(0) &amp; &quot; : &quot; &amp; NrOfFiles)                 <br \/>Call oAPI.Return(oBag) <\/font><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#160;<\/p>\n<p><strong><u>Graphing custom data<\/u><\/strong><\/p>\n<p>First, we need to set up OpsMgr to run the script on our targets, in such a way that the collected information would become available<\/p>\n<p>In short, this is what we need to do before we can use the data :<\/p>\n<p>- create a PerformanceCollection rule and then create overrides for each of the servers that need to be monitored<\/p>\n<p>- create a performance view to see the data<\/p>\n<p>Go to rules, right click and create a Probe based rule, and interpret the results as performance data<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-61.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"344\" alt=\"image_6\" src=\"\/wp-content\/uploads\/2008\/09\/image-6-thumb1.png\" width=\"432\" \/><\/a> <\/p>\n<p>Save the rule in a custom management pack and click next to continue<\/p>\n<p>Set a good name, set the target to Windows Operating System, set the category to PerformanceCollection (you will have to scroll up to see the Collection Categories) and leave the rule DISABLED for now<\/p>\n<p>Set the target to a class\/group containing Operating System objects<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-50.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"215\" alt=\"image_50\" src=\"\/wp-content\/uploads\/2008\/09\/image-50-thumb.png\" width=\"433\" \/><\/a> <\/p>\n<p>Set the schedule (e.g. 15 minutes)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-101.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"73\" alt=\"image_10\" src=\"\/wp-content\/uploads\/2008\/09\/image-10-thumb1.png\" width=\"334\" \/><\/a> <\/p>\n<p>Set a good script name (don't forget the vbs extension), paste the script from the table above (make sure not to miss any carriage returns)<\/p>\n<p>Set the script timeout<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-121.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"291\" alt=\"image_12\" src=\"\/wp-content\/uploads\/2008\/09\/image-12-thumb1.png\" width=\"343\" \/><\/a> <\/p>\n<p>Click the parameters button and enter the path that you want to monitor&#160;&#160; e.g.&#160; &quot;D:\\&quot;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-141.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"138\" alt=\"image_14\" src=\"\/wp-content\/uploads\/2008\/09\/image-14-thumb1.png\" width=\"266\" \/><\/a> <\/p>\n<p>Set the performance mapping information to the variable that is returned by the script <\/p>\n<p>In my example, this is &quot;NrOfFiles&quot;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-161.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"158\" alt=\"image_16\" src=\"\/wp-content\/uploads\/2008\/09\/image-16-thumb1.png\" width=\"397\" \/><\/a> <\/p>\n<p>Create the rule<\/p>\n<p>The rule is now disable, so you need to create an override for each server, and set &quot;Enabled&quot; to true for those servers. Additionally, you can specify another path per server by changing the Parameter field<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-181.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"209\" alt=\"image_18\" src=\"\/wp-content\/uploads\/2008\/09\/image-18-thumb1.png\" width=\"421\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-20.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"194\" alt=\"image_20\" src=\"\/wp-content\/uploads\/2008\/09\/image-20-thumb.png\" width=\"429\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>Save the override and wait until the script runs.<\/p>\n<p>Check the Operations Manager eventlogs on the target machine(s) and verify that the script has ran and completed succesfully<\/p>\n<p>&#160;<\/p>\n<p>If the scrip ran fine, we'll create a graph to display the results<\/p>\n<p>Open the monitoring pane, find the folder that represents your custom management pack<\/p>\n<p>Right click and choose &quot;New &gt;&#160; Performance View&quot;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-22.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"367\" alt=\"image_22\" src=\"\/wp-content\/uploads\/2008\/09\/image-22-thumb.png\" width=\"392\" \/><\/a> <\/p>\n<p>Set a good name<\/p>\n<p>Criteria : Show data related to&#160; &quot;Windows 2003 Computer&quot; (select the same group that was used when you've created the rule)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-24.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"284\" alt=\"image_24\" src=\"\/wp-content\/uploads\/2008\/09\/image-24-thumb.png\" width=\"322\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>Enable &quot;collected by specific rules&quot;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-54.png\" target=\"_blank\" rel=\"noopener\"><a href=\"\/wp-content\/uploads\/2008\/09\/image-26.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"309\" alt=\"image_26\" src=\"\/wp-content\/uploads\/2008\/09\/image-26-thumb.png\" width=\"266\" \/><\/a><\/a><\/p>\n<p>&#160;<\/p>\n<p>Click the &quot;specific&quot; link under Criteria Description and select the newly created Rule<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-241.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"234\" alt=\"image_54\" src=\"\/wp-content\/uploads\/2008\/09\/image-54-thumb.png\" width=\"346\" \/><\/a><\/p>\n<p>&#160;<a href=\"\/wp-content\/uploads\/2008\/09\/image-56.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"367\" alt=\"image_56\" src=\"\/wp-content\/uploads\/2008\/09\/image-56-thumb.png\" width=\"305\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>Save the graph<\/p>\n<p>Wait until data starts flowing back to OpsMgr and you should see the performancecollection objects. After enabling the objects you want to see, the graph lines should become visible as well.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-58.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" height=\"327\" alt=\"image_58\" src=\"\/wp-content\/uploads\/2008\/09\/image-58-thumb.png\" width=\"318\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p><strong><u>Using custom data to create alerts \/ monitors<\/u><\/strong><\/p>\n<p>You can use the same script to create alerts (using a rule or a monitor) - browse through this blog to find more information on creating monitors based on scripts and use the data from the PropertyBag in the unhealthy or healthy expression builder<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It is pretty easy to use data collected by Performance monitors in Counter objects within OpsMgr 2007. You can create graphs, create rules\/monitors alerts, etc But you can do the same with any type of information that can be gathered by e.g. a vbs vbscript Suppose you want to monitor the number of files in &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[634],"tags":[3737,633,632],"class_list":["post-521","post","type-post","status-publish","format-standard","hentry","category-operations-manager","tag-vbscript","tag-opsmgr","tag-monitor"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"It is pretty easy to use data collected by Performance monitors in Counter objects within OpsMgr 2007. You can create graphs, create rules\/monitors alerts, etc But you can do the same with any type of information that can be gathered by e.g. a vbs vbscript Suppose you want to monitor the number of files in &hellip; Continue reading &quot;Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2008-04-16T10:15:30+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Using custom\\\/non-Performance Counter data to build graphs in Operations Manager 2007\",\"datePublished\":\"2008-04-16T10:15:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/\"},\"wordCount\":822,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"vbscript\",\"opsmgr\",\"monitor\"],\"articleSection\":[\"OpsMgr\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/\",\"name\":\"Using custom\\\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2008-04-16T10:15:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/04\\\/16\\\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using custom\\\/non-Performance Counter data to build graphs in Operations Manager 2007\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/","og_locale":"en_US","og_type":"article","og_title":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"It is pretty easy to use data collected by Performance monitors in Counter objects within OpsMgr 2007. You can create graphs, create rules\/monitors alerts, etc But you can do the same with any type of information that can be gathered by e.g. a vbs vbscript Suppose you want to monitor the number of files in &hellip; Continue reading \"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007\"","og_url":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2008-04-16T10:15:30+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007","datePublished":"2008-04-16T10:15:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/"},"wordCount":822,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["vbscript","opsmgr","monitor"],"articleSection":["OpsMgr"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/","url":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/","name":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007 - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2008-04-16T10:15:30+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2008\/04\/16\/using-customnon-performance-counter-data-to-build-graphs-in-operations-manager-2007\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Using custom\/non-Performance Counter data to build graphs in Operations Manager 2007"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":3158,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=521"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/521\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}