Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
linenumberstrue
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "collectd Base Schema",
    "description": "A schema that defines the collectd meters and events",
    "definitions": {
		"collectd_field": {
			"description": "collectd_fields",
			"type": "object",
			"properties": {
				"anyOf" : {
					"Interval" : {
						"description": "interval at which to expect a new value",
						"type": "number"
					},
					"host" : {
						"description": "used to identify the host",
						"type": "string"
					},
					"message" : {
						"description": "The notification message",
						"type": "string"
					},
					"metadata" : {
						"description": "an opaque data structure that enables the passing of additional information about a value list",
						"type": "string"
					},
					"plugin" : {
						"description": "used to identify the plugin",
						"type": "string"
					},
					"plugin instance" : {
						"description": "used to group a set of values together",
						"type": "string"
					},
					"severity" : {
						"description": "can be one of OKAY, WARNING, and FAILURE",
						"type": "string"
					},
					"time" : {
						"description": "Time stamp at which the value was collected",
						"type": "number"
					},
					"type" : {
						"description": "unit used to measure a value",
						"type": "string"
					},
					"type instance " : {
						"description": "used to distinguish between values that have an identical type",
						"type": "string"
					},
					"values" : {
						"type": "object",
						"anyOf" : {
							 "absolute" : { "type" : "number" } ,
							 "counter" : { "type" : "number" },
							 "derive" : { "type" : "number" },
							 "gauge" : { "type" : "number" }
						}
					},
					"value length" : {
						"description": "The number of values in the data set",
						"type": "number"
					}
				}
			}
		},
		"mappingmappings": {
			"description": "mapping pair",
			"type": "object",
			"properties": {
			    "oneOf": {
				"$ref": "#/definitions/collectd_field",
				"collectd_string": { "type": "string" }
				},
				"new_string": { "type": "string" }
			}
		},
		"eventstimestamps": {
            "description": "Mappings from collectd eventstimestamps to other framework eventstimestamps",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping",
						"conversion": "string"
					}
				}
			},
			"required": [ "mappings" ]
        },
		"metersunits": {
            "description": "Mappings from collectd metersunits to other framework metersunits",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping",
						"unit_conversion": "string"
					}
				}
			},
			"required": [ "mappings" ]
        }	
	},
		"resourcefield_mappings": {
            		"description": "Mappingsarray from collectd resources to other framework resources",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping" 
					}
				}
			},
			"required": [ "mappings" ]
        },
		"types": {
            "description": "Mappings from collectd meter types to other framework meter types",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping" 
					}
				}
			},
			"required": [ "mappings" ]
        },
		"timestamps": {
            "description": "Mappings from collectd timestamps to other framework timestamps",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping",
						"conversion": "string"
					}
				}
			},
			"required": [ "mappings" ]
        },
		"units": {
            "description": "Mappings from collectd units to other framework units",
            "type": "object",
            "properties": {
				"mappings": {
					"description": "array of mappings from collectd to other frameworks",
					"type": "array",
					"items": {  
						"$ref": "#/definitions/mapping",
						"unit_conversion": "string"
					}
				}
			},
			"required": [ "mappings" ]
        }	
	},
	"field_mappings": {
		"type": "object",
		"oneOf": [
			{ "$refof field_mappings",
		"type": "array",
		"items": {
				"$ref": "#/definitions/mappings",
				"$ref1": "#/definitions/timestamps",
				"$ref2": "#/definitions/mappingunits" }
		]}
	}
}

 

Taking the following ceilometer meter as an example:

...