Docs » Concepts » Data Model

Data Model

Metrics

The SignalFx platform is built to ingest, store, analyze, visualize, and alert on metrics at scale. A metric is anything that is measurable (you can assign a numerical value to it) and variable (changes over time). The following are examples of metrics:

  • CPU utilization % of a server
  • Response time in milliseconds of an API call
  • The number of unique users who logged in over the previous 24-hour period

Time series

The same metric can be reported from multiple sources or emitters, and each unique combination of a source and a metric is referred to as a metric time series in SignalFx. For example, you might report on the CPU utilization of each of 10 hosts in a cluster. In SignalFx parlance, CPU utilization is the metric, and you will have ten time series: one for each host, representing the CPU utilization over time for that host.

Datapoints

The individual measurements that make up a time series are datapoints. Each datapoint sent to SignalFx contains four pieces of information: metric type, metric name, metric value, and zero or more dimensions.

  • Metric type - One of three predefined types: counter, cumulative counter or gauge. The metric type specified determines the default visualization rollup that SignalFx uses when combining multiple values of this metric for longer time scales.

  • Metric name - A name that identifies the values being sent in. For example: memory.free, CPUUtilization, transaction.cost, page_visits.

  • Metric value - The actual measurement from your system, represented as a number.

  • Dimensions - Key/value pairs that are used to identify the source of the datapoint and other useful contextual information. Common examples of dimensions include host names, the environment from which the metric is being generated, or the name of the service with which it is associated.

    Dimensions are one of several forms of metadata in SignalFx that are useful in aggregating and filtering metrics. For example, sending an environment dimension with each datapoint would allow you to suppress alerts on metrics coming from the test environment, but direct alerts from production to your operations team’s preferred messaging system.

Events and event time series

SignalFx also captures and generates events. For the purpose of monitoring, an event is a noteworthy occurrence, such as:

  • A new version of code was released
  • Response time for an API call was much higher than normal
  • A container was stopped

An event time series is the event equivalent of a metric time series. For example, if you alert on when the response time for an API call is higher than normal, then SignalFx will generate an event time series representing the history of those alerts, with each event representing an individual occurrence of the alert.