<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shengjie+min</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shengjie+min"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Shengjie_min"/>
		<updated>2026-07-14T10:21:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20067</id>
		<title>Ceilometer/blueprints/transportation-pipeline-monitoring-metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20067"/>
				<updated>2013-04-07T09:24:04Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Alternative for metrics pipeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metrics necessarily need to go through the message bus as metering data does. Or the option worth being considered is to write them directly to data store. &lt;br /&gt;
&lt;br /&gt;
==The current metering pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: meter_pipeline&lt;br /&gt;
    interval: 60&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - meter_publisher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative for metrics pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: metrics_pipeline&lt;br /&gt;
    interval: 5   // more frequent polling might be needed by monitoring&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - metrics_publisher     // metrics publisher might directly write to backend storage (avoid MQ)&lt;br /&gt;
        - metrics_notifier(publisher)     // inline pre-processing metrics notification&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ceilometer-metrics-pipeline.png]]&lt;br /&gt;
&lt;br /&gt;
=== Direct write to data store ===&lt;br /&gt;
	Storage backend has record_metering_message() to store the metering message(converted from counter) to backend storage via RPC(message queue). Another record_monitoring_metrics() method might just store metrics directly to the storage back end.&lt;br /&gt;
	&lt;br /&gt;
=== Pre-processing/In-line calculation ===&lt;br /&gt;
	Transformer might be used to do some inline pre-processing before the metrics get stored in data store. This allows some critical metrics or calculated metrics being notified in a real-time manner before persistence. &lt;br /&gt;
	&lt;br /&gt;
	&amp;quot;real-time single  metric&amp;quot;, when it hits some thresholds or matches some specific values, the notifications can be triggered immediately. eg. The capacity reaches the high-end limit.  &lt;br /&gt;
	&lt;br /&gt;
	&amp;quot;calculated metric&amp;quot;, some metrics might sequentially be kept in memory by transformers (similar to AccumulatorTransformer) for some in-line calculation. When the PublishContext exits, the calculated result might get flushed to data store as new type of metric. If it meets some criteria and it can trigger some notifications too. eg. a few drastically increasing storage metrics might indicate a sharp usage rise in a short period of time.&lt;br /&gt;
	&lt;br /&gt;
=== Post-processing/analytics ===&lt;br /&gt;
	Post-processing, analytics and mapred tasks might be carried out periodically against data store directly or via monitoring API, this is more for time-consuming analytics tasks.&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Ceilometer-metrics-pipeline.png&amp;diff=20066</id>
		<title>File:Ceilometer-metrics-pipeline.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Ceilometer-metrics-pipeline.png&amp;diff=20066"/>
				<updated>2013-04-07T09:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20065</id>
		<title>Ceilometer/blueprints/transportation-pipeline-monitoring-metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20065"/>
				<updated>2013-04-07T09:19:30Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Alternative for metrics pipeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metrics necessarily need to go through the message bus as metering data does. Or the option worth being considered is to write them directly to data store. &lt;br /&gt;
&lt;br /&gt;
==The current metering pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: meter_pipeline&lt;br /&gt;
    interval: 60&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - meter_publisher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative for metrics pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: metrics_pipeline&lt;br /&gt;
    interval: 5   // more frequent polling might be needed by monitoring&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - metrics_publisher     // metrics publisher might directly write to backend storage (avoid MQ)&lt;br /&gt;
        - metrics_notifier(publisher)     // inline pre-processing metrics notification&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ceilometer-metrics-pipeline.png]]&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20064</id>
		<title>Ceilometer/blueprints/transportation-pipeline-monitoring-metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20064"/>
				<updated>2013-04-07T09:15:35Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Alternative for metrics pipeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metrics necessarily need to go through the message bus as metering data does. Or the option worth being considered is to write them directly to data store. &lt;br /&gt;
&lt;br /&gt;
==The current metering pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: meter_pipeline&lt;br /&gt;
    interval: 60&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - meter_publisher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative for metrics pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: metrics_pipeline&lt;br /&gt;
    interval: 5   // more frequent polling might be needed by monitoring&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - metrics_publisher     // metrics publisher might directly write to backend storage (avoid MQ)&lt;br /&gt;
        - metrics_notifier(publisher)     // inline pre-processing metrics notification&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:ceilometer-metrics-pipeline.jpg]]&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20063</id>
		<title>Ceilometer/blueprints/transportation-pipeline-monitoring-metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20063"/>
				<updated>2013-04-07T09:15:13Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Alternative for metrics pipeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metrics necessarily need to go through the message bus as metering data does. Or the option worth being considered is to write them directly to data store. &lt;br /&gt;
&lt;br /&gt;
==The current metering pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: meter_pipeline&lt;br /&gt;
    interval: 60&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - meter_publisher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative for metrics pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: metrics_pipeline&lt;br /&gt;
    interval: 5   // more frequent polling might be needed by monitoring&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - metrics_publisher     // metrics publisher might directly write to backend storage (avoid MQ)&lt;br /&gt;
        - metrics_notifier(publisher)     // inline pre-processing metrics notification&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
[[Image:ceilometer-metrics-pipeline.jpg]]&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20062</id>
		<title>Ceilometer/blueprints/transportation-pipeline-monitoring-metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/transportation-pipeline-monitoring-metrics&amp;diff=20062"/>
				<updated>2013-04-07T09:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: Created page with &amp;quot;== Summary == Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metri...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Compared to metering data, the monitoring metrics need to be collected in a more frequent fashion and the amount of data is way bigger. Does the monitoring metrics necessarily need to go through the message bus as metering data does. Or the option worth being considered is to write them directly to data store. &lt;br /&gt;
&lt;br /&gt;
==The current metering pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: meter_pipeline&lt;br /&gt;
    interval: 60&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - meter_publisher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative for metrics pipeline==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
-&lt;br /&gt;
    name: metrics_pipeline&lt;br /&gt;
    interval: 5   // more frequent polling might be needed by monitoring&lt;br /&gt;
    counters:&lt;br /&gt;
        - &amp;quot;*&amp;quot;&lt;br /&gt;
    transformers:&lt;br /&gt;
    publishers:&lt;br /&gt;
        - metrics_publisher     // metrics publisher might directly write to backend storage (avoid MQ)&lt;br /&gt;
        - metrics_notifier(publisher)     // inline pre-processing metrics notification&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:ceilometer-metrics-pipeline-proposal.jpg|Alternative for metrics pipeline&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20061</id>
		<title>Ceilometer/blueprints/monitoring-metrics-object</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20061"/>
				<updated>2013-04-07T08:57:04Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Monitoring Metrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meters ==&lt;br /&gt;
In Ceilometer, the meters are polled in the form of Counter(namedtuple) as below, do we need two different peer objects or a common lower level object for both meters and metrics?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Counter = collections.namedtuple('Counter',&lt;br /&gt;
                                 ' '.join([&lt;br /&gt;
                                     'name',&lt;br /&gt;
                                     'type',&lt;br /&gt;
                                     'unit',&lt;br /&gt;
                                     'volume',&lt;br /&gt;
                                     'user_id',&lt;br /&gt;
                                     'project_id',&lt;br /&gt;
                                     'resource_id',&lt;br /&gt;
                                     'timestamp',&lt;br /&gt;
                                     'resource_metadata',&lt;br /&gt;
                                 ]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Metrics ==&lt;br /&gt;
As the monitoring metrics, take ganglia metric as an example(Gmetad XML dump):&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
-Host &lt;br /&gt;
        -Cluster Name&lt;br /&gt;
	        -METRIC NAME=&amp;quot;swap_free&amp;quot; &lt;br /&gt;
	        -VAL=&amp;quot;2097148&amp;quot; &lt;br /&gt;
	        -TYPE=&amp;quot;float&amp;quot; &lt;br /&gt;
	        -UNITS=&amp;quot;KB&amp;quot; &lt;br /&gt;
		-TN=&amp;quot;138&amp;quot; - timestamp &lt;br /&gt;
		-TMAX=&amp;quot;180&amp;quot;  (like a leasetime - freshness)&lt;br /&gt;
		-DMAX=&amp;quot;0&amp;quot;  (how long to retain old records)&lt;br /&gt;
	        -SLOPE=&amp;quot;both&amp;quot; (+ = counter, others = gauge)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ceilometer Counter !! Ganglia Metric&lt;br /&gt;
|-&lt;br /&gt;
| name || METRIＣNAME&lt;br /&gt;
|-&lt;br /&gt;
|Type(gauge|delta|cumulative) || SLOPE(zero|positive|negative|both) more from metadata&lt;br /&gt;
|-&lt;br /&gt;
| unit|| UNITS&lt;br /&gt;
|-&lt;br /&gt;
| volume || VAL&lt;br /&gt;
|-&lt;br /&gt;
| user_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| project_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| resource_id(swift: tenant_id, compute:instance_id, glance:image_id)|| Host (FQDN)&lt;br /&gt;
|-&lt;br /&gt;
| timestamp|| Ganglia TN (current time - TN = timestamp when metric published)&lt;br /&gt;
|-&lt;br /&gt;
| resource_metadata || NONE&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20060</id>
		<title>Ceilometer/blueprints/monitoring-metrics-object</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20060"/>
				<updated>2013-04-07T08:56:27Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Meters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meters ==&lt;br /&gt;
In Ceilometer, the meters are polled in the form of Counter(namedtuple) as below, do we need two different peer objects or a common lower level object for both meters and metrics?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Counter = collections.namedtuple('Counter',&lt;br /&gt;
                                 ' '.join([&lt;br /&gt;
                                     'name',&lt;br /&gt;
                                     'type',&lt;br /&gt;
                                     'unit',&lt;br /&gt;
                                     'volume',&lt;br /&gt;
                                     'user_id',&lt;br /&gt;
                                     'project_id',&lt;br /&gt;
                                     'resource_id',&lt;br /&gt;
                                     'timestamp',&lt;br /&gt;
                                     'resource_metadata',&lt;br /&gt;
                                 ]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Metrics ==&lt;br /&gt;
As the monitoring metrics, take ganglia metric as an example(Gmetad XML dump):&lt;br /&gt;
    &lt;br /&gt;
:-Host &lt;br /&gt;
:        -Cluster Name&lt;br /&gt;
:	        -METRIC NAME=&amp;quot;swap_free&amp;quot; &lt;br /&gt;
:	        -VAL=&amp;quot;2097148&amp;quot; &lt;br /&gt;
:	        -TYPE=&amp;quot;float&amp;quot; &lt;br /&gt;
:	        -UNITS=&amp;quot;KB&amp;quot; &lt;br /&gt;
:		-TN=&amp;quot;138&amp;quot; - timestamp &lt;br /&gt;
:		-TMAX=&amp;quot;180&amp;quot;  (like a leasetime - freshness)&lt;br /&gt;
:		-DMAX=&amp;quot;0&amp;quot;  (how long to retain old records)&lt;br /&gt;
:	        -SLOPE=&amp;quot;both&amp;quot; (+ = counter, others = gauge)&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ceilometer Counter !! Ganglia Metric&lt;br /&gt;
|-&lt;br /&gt;
| name || METRIＣNAME&lt;br /&gt;
|-&lt;br /&gt;
|Type(gauge|delta|cumulative) || SLOPE(zero|positive|negative|both) more from metadata&lt;br /&gt;
|-&lt;br /&gt;
| unit|| UNITS&lt;br /&gt;
|-&lt;br /&gt;
| volume || VAL&lt;br /&gt;
|-&lt;br /&gt;
| user_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| project_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| resource_id(swift: tenant_id, compute:instance_id, glance:image_id)|| Host (FQDN)&lt;br /&gt;
|-&lt;br /&gt;
| timestamp|| Ganglia TN (current time - TN = timestamp when metric published)&lt;br /&gt;
|-&lt;br /&gt;
| resource_metadata || NONE&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20059</id>
		<title>Ceilometer/blueprints/monitoring-metrics-object</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20059"/>
				<updated>2013-04-07T08:55:25Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: /* Meters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meters ==&lt;br /&gt;
In Ceilometer, the meters are polled in the form of Counter(namedtuple) as below, do we need two different peer objects or a common lower level object for both meters and metrics?&lt;br /&gt;
:Counter = collections.namedtuple('Counter',&lt;br /&gt;
:                                 ' '.join([&lt;br /&gt;
:                                     'name',&lt;br /&gt;
:                                     'type',&lt;br /&gt;
:                                     'unit',&lt;br /&gt;
:                                     'volume',&lt;br /&gt;
:                                     'user_id',&lt;br /&gt;
:                                     'project_id',&lt;br /&gt;
:                                     'resource_id',&lt;br /&gt;
:                                     'timestamp',&lt;br /&gt;
:                                     'resource_metadata',&lt;br /&gt;
:                                 ]))&lt;br /&gt;
&lt;br /&gt;
== Monitoring Metrics ==&lt;br /&gt;
As the monitoring metrics, take ganglia metric as an example(Gmetad XML dump):&lt;br /&gt;
    &lt;br /&gt;
:-Host &lt;br /&gt;
:        -Cluster Name&lt;br /&gt;
:	        -METRIC NAME=&amp;quot;swap_free&amp;quot; &lt;br /&gt;
:	        -VAL=&amp;quot;2097148&amp;quot; &lt;br /&gt;
:	        -TYPE=&amp;quot;float&amp;quot; &lt;br /&gt;
:	        -UNITS=&amp;quot;KB&amp;quot; &lt;br /&gt;
:		-TN=&amp;quot;138&amp;quot; - timestamp &lt;br /&gt;
:		-TMAX=&amp;quot;180&amp;quot;  (like a leasetime - freshness)&lt;br /&gt;
:		-DMAX=&amp;quot;0&amp;quot;  (how long to retain old records)&lt;br /&gt;
:	        -SLOPE=&amp;quot;both&amp;quot; (+ = counter, others = gauge)&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ceilometer Counter !! Ganglia Metric&lt;br /&gt;
|-&lt;br /&gt;
| name || METRIＣNAME&lt;br /&gt;
|-&lt;br /&gt;
|Type(gauge|delta|cumulative) || SLOPE(zero|positive|negative|both) more from metadata&lt;br /&gt;
|-&lt;br /&gt;
| unit|| UNITS&lt;br /&gt;
|-&lt;br /&gt;
| volume || VAL&lt;br /&gt;
|-&lt;br /&gt;
| user_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| project_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| resource_id(swift: tenant_id, compute:instance_id, glance:image_id)|| Host (FQDN)&lt;br /&gt;
|-&lt;br /&gt;
| timestamp|| Ganglia TN (current time - TN = timestamp when metric published)&lt;br /&gt;
|-&lt;br /&gt;
| resource_metadata || NONE&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20058</id>
		<title>Ceilometer/blueprints/monitoring-metrics-object</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Ceilometer/blueprints/monitoring-metrics-object&amp;diff=20058"/>
				<updated>2013-04-07T08:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Shengjie min: Created page with &amp;quot;== Meters == In Ceilometer, the meters are polled in the form of Counter(namedtuple) as below, do we need two different peer objects or a common lower level object for both me...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meters ==&lt;br /&gt;
In Ceilometer, the meters are polled in the form of Counter(namedtuple) as below, do we need two different peer objects or a common lower level object for both meters and metrics?&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
:Counter = collections.namedtuple('Counter',&lt;br /&gt;
:                                 ' '.join([&lt;br /&gt;
:                                     'name',&lt;br /&gt;
:                                     'type',&lt;br /&gt;
:                                     'unit',&lt;br /&gt;
:                                     'volume',&lt;br /&gt;
:                                     'user_id',&lt;br /&gt;
:                                     'project_id',&lt;br /&gt;
:                                     'resource_id',&lt;br /&gt;
:                                     'timestamp',&lt;br /&gt;
:                                     'resource_metadata',&lt;br /&gt;
:                                 ]))&lt;br /&gt;
&lt;br /&gt;
== Monitoring Metrics ==&lt;br /&gt;
As the monitoring metrics, take ganglia metric as an example(Gmetad XML dump):&lt;br /&gt;
    &lt;br /&gt;
:-Host &lt;br /&gt;
:        -Cluster Name&lt;br /&gt;
:	        -METRIC NAME=&amp;quot;swap_free&amp;quot; &lt;br /&gt;
:	        -VAL=&amp;quot;2097148&amp;quot; &lt;br /&gt;
:	        -TYPE=&amp;quot;float&amp;quot; &lt;br /&gt;
:	        -UNITS=&amp;quot;KB&amp;quot; &lt;br /&gt;
:		-TN=&amp;quot;138&amp;quot; - timestamp &lt;br /&gt;
:		-TMAX=&amp;quot;180&amp;quot;  (like a leasetime - freshness)&lt;br /&gt;
:		-DMAX=&amp;quot;0&amp;quot;  (how long to retain old records)&lt;br /&gt;
:	        -SLOPE=&amp;quot;both&amp;quot; (+ = counter, others = gauge)&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ceilometer Counter !! Ganglia Metric&lt;br /&gt;
|-&lt;br /&gt;
| name || METRIＣNAME&lt;br /&gt;
|-&lt;br /&gt;
|Type(gauge|delta|cumulative) || SLOPE(zero|positive|negative|both) more from metadata&lt;br /&gt;
|-&lt;br /&gt;
| unit|| UNITS&lt;br /&gt;
|-&lt;br /&gt;
| volume || VAL&lt;br /&gt;
|-&lt;br /&gt;
| user_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| project_id ||  None    (appropriate for a meter, not monitor)&lt;br /&gt;
|-&lt;br /&gt;
| resource_id(swift: tenant_id, compute:instance_id, glance:image_id)|| Host (FQDN)&lt;br /&gt;
|-&lt;br /&gt;
| timestamp|| Ganglia TN (current time - TN = timestamp when metric published)&lt;br /&gt;
|-&lt;br /&gt;
| resource_metadata || NONE&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Shengjie min</name></author>	</entry>

	</feed>