broadview-collector/doc/bst_to_monasca_serializer.md
Volodymyr Samotiy 09a694a1b9 Update monasca serializer documentation
Change-Id: I777bc8d3f64f8e686adc01557fd8c1e10a4c0b36
2016-07-13 15:20:25 +03:00

227 lines
8.6 KiB
Markdown

Monasca BST Serializer Format
=============================
Monasca API supports reporting of metrics in JSON encoding with the following
key/value pairs:
* timestamp - event time in microseconds (floating point)
* name - metric name
* value - metric value
* dimensions - a set of key/value pairs that provide additional metadata
for the metric
This document details the format of Monasca metrics as generated by the
BST to Monasca serializer (serializers/bst_to_monasca.py)
BST
---
This section describes in more detail the format currently used for BST
metrics published to Monasca.
# name
The name field consists of the suffix "broadview.bst." to which is added
the name of the BST statistic.
BST statistic names consist of the following:
* device
* ingress-port-priority-group
* ingress-port-service-pool
* ingress-service-pool
* egress-cpu-queue
* egress-mc-queue
* egress-port-service-pool
* egress-rqe-queue
* egress-service-pool
* egress-uc-queue
* egress-uc-queue-group
###Example
"name": "broadview.bst.egress-port-service-pool"
# timestamp
The timestamp field is a floating point value which represents that time in
microseconds of the statistic.
###Example
"timestamp": 1459361118000.0
# value
The value field represents that reported value for the statistic.
###Example
"value": 366
# dimensions
Note the structure of the name field values for BST. Except for device,
the name consists of the string "ingress" or "egress", followed by a '-'
separated list of strings. These names imply some of the metadata that
is recorded in the dimensions field. For example, names which contain
the "-port-" substring will have a "port" dimension. Similarly, a name
with "-service-pool-" substring will have a "service-pool" dimension.
All statistics will include a dimension named "asic-id" which specifies
the ASIC to which the data corresponds.
While some of the dimensions are based on the name of the statistic,
other dimensions reflect data transmitted by the agent that has been
given a name in the BroadView BST documentation.
Finally, be aware that a statistic reported by BroadView often comes in
the form of an aggregate. For a given set of metadata, there might be
multiple values reported. In the case of ingress-port-priority-group,
for example, both um-share-buffer-count and um-headroom-count are reported
together in an array. They share the same metadata: asic-id, port, and
priority-group (as implied by the name of the statistic). broadview-lib
flattens this aggregate report into two separate statistics, one for
um-share-bufffer-count, and one for um-headroom-count. This flattening
aids indexers of the Monasca data; both stats can be retrieved by searching
on ingress-port-priority-group, or a more refined search can obtain just
the um-share-bufffer-count data by providing that dimension as a search
key. Except for the "stat" and value fields, the remaining fields in the
flattened set of reports (e.g., name, timestamp) should be the same.
The following sections define the metadata that are generated by the BST
to Monasca serializer for each BST statistic. An example for each stat
is provided in the context of a complete report (the data is accessible
via the "dimension" field).
## device
* asic-id - the ASIC pertaining to the statistic
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.device", "value": 46, "dimensions": {"asic-id": "20"}}
## ingress-port-priority-group
* asic-id - the ASIC pertaining to the statistic
* priority-group - the priority group associated with the stat
* port - the port impacted by the statistic
* stat - either um-share-buffer-count or um-headroom-buffer-count
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.ingress-port-priority-group", "value": 45500, "dimensions": {"asic-id": "20", "stat": "um-share-buffer-count", "priority-group": 5, "port": "2"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.ingress-port-priority-group", "value": 44450, "dimensions": {"asic-id": "20", "stat": "um-headroom-buffer-count", "priority-group": 5, "port": "2"}}
## ingress-port-service-pool
* asic-id - the ASIC pertaining to the statistic
* service-pool - the service pool associated with the stat
* port - the port impacted by the statistic
* stat - um-share-buffer-count
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.ingress-port-service-pool", "value": 324, "dimensions": {"asic-id": "20", "stat": "um-share-buffer-count", "service-pool": 5, "port": "2"}}
## ingress-service-pool
* asic-id - the ASIC pertaining to the statistic
* service-pool - the service pool associated with the stat
* stat - um-share-buffer-count
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.ingress-service-pool", "value": 3240, "dimensions": {"asic-id": "20", "stat": "um-share-buffer-count", "service-pool": 1}}
## egress-cpu-queue
* asic-id - the ASIC pertaining to the statistic
* queue - the queue associated with the statistic
* stat - either cpu-buffer-count or cpu-queue-entries
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-cpu-queue", "value": 4566, "dimensions": {"queue": 3, "asic-id": "20", "stat": "cpu-buffer-count"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-cpu-queue", "value": 0, "dimensions": {"queue": 3, "asic-id": "20", "stat": "cpu-queue-entries"}}
## egress-mc-queue
* asic-id - the ASIC pertaining to the statistic
* queue - the queue associated with the statistic
* port - the port associated with the statistic
* stat - either mc-buffer-count or mc-queue-entries
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-mc-queue", "value": 34, "dimensions": {"queue": 1, "asic-id": "20", "stat": "mc-buffer-count", "port": "1"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-mc-queue", "value": 89, "dimensions": {"queue": 1, "asic-id": "20", "stat": "mc-queue-entries", "port": "1"}}
## egress-port-service-pool
* asic-id - the ASIC pertaining to the statistic
* service-pool - the service pool associated with the statistic
* port - the port associated with the statistic
* stat - either um-share-buffer-count, mc-share-buffer-count or mc-share-queue-entries
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-port-service-pool", "value": 0, "dimensions": {"asic-id": "20", "stat": "um-share-buffer-count", "service-pool": 5, "port": "2"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-port-service-pool", "value": 324, "dimensions": {"asic-id": "20", "stat": "mc-share-buffer-count", "service-pool": 5, "port": "2"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-port-service-pool", "value": 0, "dimensions": {"asic-id": "20", "stat": "mc-share-queue-entries", "service-pool": 5, "port": "2"}}
## egress-rqe-queue
* asic-id - the ASIC pertaining to the statistic
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-rqe-queue", "value": 3333, "dimensions": {"queue": 2, "asic-id": "20", "stat": "rqe-buffer-count"}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-rqe-queue", "value": 4444, "dimensions": {"queue": 2, "asic-id": "20", "stat": "rqe-queue-entries"}}
## egress-service-pool
* asic-id - the ASIC pertaining to the statistic
* service-pool - the service pool associated with the statistic
* stat - either um-share-buffer-count, mc-share-buffer-count or mc-share-queue-entries
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-service-pool", "value": 0, "dimensions": {"asic-id": "20", "stat": "um-share-buffer-count", "service-pool": 2}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-service-pool", "value": 0, "dimensions": {"asic-id": "20", "stat": "mc-share-buffer-count", "service-pool": 2}}
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-service-pool", "value": 3240, "dimensions": {"asic-id": "20", "stat": "mc-share-queue-entries", "service-pool": 2}}
## egress-uc-queue
* asic-id - the ASIC pertaining to the statistic
* queue - the queue associated with the statistic
* port - the port associated with the statistic
* stat - uc-queue-buffer-count
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-uc-queue", "value": 1111, "dimensions": {"queue": 6, "asic-id": "20", "stat": "uc-queue-buffer-count", "port": "0"}}
## egress-uc-queue-group
* asic-id - the ASIC pertaining to the statistic
* queue-group - the queue group associated with the statistic
* stat - uc-buffer-count
###Example
{"timestamp": 1459361118000.0, "name": "broadview.bst.egress-uc-queue-group", "value": 2222, "dimensions": {"queue-group": 6, "asic-id": "20", "stat": "uc-buffer-count"}}