SignalFx Developers Guide


Duplicates or renames metadata for the timeseries in the input stream


dimensions(aliases=None, renames=None)

Table 1. Parameter definitions
Parameter Type Description


dictionary of strings

Optional, default="None". This dictionary adds new dimensions to each timeseries, based on existing dimensions or custom properties.


dictionary of strings

Optional, default="None". This dictionary renames existing dimensions or custom properties.

Notice that the aliases argument adds dimensions but doesn’t change existing ones, while the renames argument replaces existing dimension keys with new names.

The return value is a stream object in which the time series have altered dimensions


The following cause errors:

  • An aliases or renames argument that isn’t a dictionary in which both keys and values are strings

  • A key in either dictionary is also a value in a dictionary


#counter example: this is an error, because you can't make server an alias to host and node an alias to server
#at the same time
data('cpu.load').dimensions(aliases={'server':'host', 'node':'server'}).publish()

#counter example: this is an error, because you create an alias to server and then rename node to server at the
#same time
data('cpu.load').dimensions(aliases={'server':'host'}, renames={'node':'server'}).publish()


SignalFx provides the dimensions method so you can repair misnamed metadata in place. For this reason, you usually use the renames argument.

You should assume that the aliasing and renaming occur simultaneously, so that none of the key-value pairs in the dictionaries affect any of the others. This lets you alias or rename an existing dimension or custom property to multiple new dimensions.

dimensions only returns timeseries that include the aliased or renamed dimensions and custom properties, so any timeseries that doesn’t have these metadata aren’t in the output. For example, if you want to rename "host" to "server", a time series that doesn’t have the "host" dimension or property wont' be in the output stream.


If you wanted to report a timeseries with a "server" dimension but misreported it with "host", use the dimensions() method to fix it:


To rename "project" to both "service" and "team":

data('cpu.load').dimensions(renames={'service':'project', 'team':'project'}).publish()

© Copyright 2019 SignalFx.

Third-party license information