In my previous post, I shared some of the reasons organizations are transitioning from Graphite monitoring to a more modern monitoring-as-a-service solution like SignalFx. Specifically, where Graphite (and its ilk) has limitations in scale, maintenance, ease of use, flexibility, and cost, SignalFx was built specifically for today’s distributed, elastic environments that rely on faster, more durable insights that enable intelligent, real-time alerting.

Ultimately, as organizations move to the cloud and adopt DevOps strategies, they need monitoring that both grows with their needs and offers the best features of familiar systems like Graphite. SignalFx has invested in a number of capabilities that dramatically simplify the transition from Graphite, enabling Graphite users to:

  • Use familiar Graphite wildcard conventions while building charts in SignalFx
  • Take advantage of SignalFx’s multidimensional analytics without modifying incoming Graphite metrics, through on-the-fly dimension aliasing
  • Translate existing Graphite metrics to dimensionalized SignalFx metrics at scale with the SignalFx metric proxy
Support for Graphite Wildcard Conventions

Many Graphite users have become accustomed to its wildcard conventions, and use them actively to generate the custom charts that they want. SignalFx supports the use of those conventions in the signal (metric or event) field of the SignalFx chart builder UI, including asterisks, character lists and ranges, or value lists. To use the Graphite wildcard, simply enter the syntax into the signal field, then select the Graphite wildcard option.

Graphite Wildcard Conventions

On-the-Fly Dimension Aliasing

One of the most powerful features in SignalFx is the ability to use dimensions to filter or group everything: metrics, charts, dashboards, alerts, and the Host Navigator. For example, you can filter in or out time series that match datacenter:snc or calculate the average value of the metric cpu.total.user across multiple hosts, grouped by microservice.

In Graphite, metric names typically contain multiple dot-separated dimension values, such as snc.role1.server3.cpu.total.user. (The dimension keys—e.g., datacenter, role, host—are implicit.) To use the dimensions in Graphite metric names as if they were native SignalFx dimensions, you can simply apply on-the-fly dimension aliasing to the chart you’re constructing. This allows you to treat the nodes in a Graphite metric name as if they were dimensions in SignalFx, and you can also assign aliases to the implicit dimension keys to make it easier to use and easier to understand.

Graphite Dimension Aliasing 1

Graphite Dimension Aliasing 2 Graphite Dimension Aliasing 3

SignalFx Metric Proxy

The SignalFx metric proxy is a multilingual datapoint demultiplexer that can accept time series data from a variety of metrics protocols and emit those datapoints to one or more servers on the same protocols. It is designed to be used in the following scenarios:

  • You are using a metrics monitoring system like Graphite in production and want to evaluate SignalFx in a non-disruptive way
  • You have decided to use SignalFx, but you have a mechanism for collecting metrics (typically an agent or other client-side code) that does not yet have a native SignalFx backend or handler
  • You limit the number of egress points from your network due to security or other concerns, and you want to consolidate metrics-related traffic as it leaves your network

To try out SignalFx, you can place the proxy in between collectors and Graphite. In other words, collectd, StatsD, and other agents and/or client libraries send their metrics to the proxy, which then forwards it on to both Graphite and SignalFx. (When you are ready to make the switch, SignalFx will ingest those metrics directly.)

In the simplest case, Graphite metric names are forwarded as-is and appear in SignalFx with the traditional dot-separated format. When you decide to leverage SignalFx’s dimension-based capabilities across the board (as opposed to on a per-chart basis, as with on-the-fly dimension aliasing) you can add a schema to the proxy that will parse the Graphite metric names into dimensionalized SignalFx metrics. Learn more about the metric proxy.

Docker Webinar
Watch our webinar on how Zenefits is Operationalizing Docker » 

 

About the authors

Patrick Lin

Patrick leads Product and Partnerships at SignalFx. Previously, he held senior leadership positions in Product Management at Jive Software and VMware.

Enjoyed this blog post? Sign up for our blog updates