Pique 30: Cómo hacer routing de métricas en InfluxDB OSS y Cloud con Telegraf

Después de estar un tiempo sin escribir, me gustaría retomar con un truco que es muy interesante y funciona muy bien a la hora de hacer routing de métricas cuando usamos InfluxDB Open Source o InfluxDB Cloud.

Si es la primera vez que lees algo sobre el routing de métricas, dejame contarte que normalmente se usa para cuando, por cualquier motivo, querés enviar ciertas métricas hacia un determinado bucket.

Por defecto, cuando uno configura Telegraf solamente especifica un output, el mismo tiene como objetivo un solo bucket y ahí es donde se guardará toda la información de los inputs que esa config tenga.

Para muchos no es problema, pero para otros, quieren ser un poco más ordenados a la hora de enviar ciertas métricas hacia determinados buckets.

En este ejemplo, te voy a mostrar un ejemplo bien sencillo, pero que va a servir para hacer routing de métricas hacia InfluxDB Cloud e InfluxDB OSS.

[[outputs.influxdb_v2]]
  urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
  token = "$INFLUX_TOKEN"
  organization = "$INFLUX_ORG"
  bucket = "bucket_one"

  namepass = ["cpu_*"]

[[outputs.influxdb_v2]]
  urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
  token = "$INFLUX_TOKEN"
  organization = "i$INFLUX_ORG"
  bucket = "bucket_two"
  
  namepass = ["memory_*"]

[[inputs.cpu]]
  name_prefix = "cpu_"

[[inputs.mem]]
  name_prefix = "memory_"

Lo que hago acá basicamente es asignarle un prefijo a cada input plugin para después con namepass filtrarlo. Fijense que las métricas relacionados al CPU van a ir a parar al bucket_one y las de la memoría al bucket_two.

También noten que hay dos outputs, cada uno escribe en un bucket diferente.

Como pueden ver es muy sencillo, no requiere de mucha complicación. Espero les sirva y si tienen alguna duda o consulta, no duden en dejarla en los comentarios.

Photo by Markus Winkler on Unsplash