InfluxDB: Primeros pasos

Cómo empezar con InfluxDB

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución InfluxDB cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Escrituras, consultas, paneles, tareas y buckets ilimitados.
  • Tiempo de retención de datos ilimitado.
  • Transferencias de red y disco ilimitadas.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta impulsada por una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de InfluxDB cloud hosting de Stackhero!

InfluxDB no ofrece una forma de crear y gestionar usuarios directamente a través de su interfaz web. Afortunadamente, puede utilizar la CLI de InfluxDB para estas tareas.

Puede acceder a la CLI de InfluxDB a través de Docker. Por ejemplo, ejecute el siguiente comando:

docker run -it -u 0 bitnami/influxdb:2.7.11 /bin/bash

No olvide reemplazar 2.7.11 con su versión de InfluxDB.

Una vez que el contenedor se inicie, cree una configuración. Recuerde reemplazar <XXXXXX>.stackhero-network.com con su dominio real de InfluxDB:

influx config create \
  --config-name adminConfig \
  --active \
  --username-password admin \
  --org admin \
  --host-url https://<XXXXXX>.stackhero-network.com

Después de este paso, podrá utilizar la CLI de InfluxDB. Por ejemplo, para crear un nuevo usuario, ejecute:

influx user create --name <user> --password <password>

InfluxDB está diseñado como una base de datos de series temporales y a menudo maneja un gran número de métricas. Como estas bases de datos generalmente no eliminan datos automáticamente, su base de datos puede crecer indefinidamente y utilizar todo el espacio en disco disponible.

Para evitar la saturación del espacio en disco, InfluxDB ofrece dos soluciones:

  1. Políticas de retención: Eliminar datos más antiguos que una fecha definida. Por ejemplo, podría decidir eliminar datos de más de 365 días.
  2. Reducción de datos: Reducir la resolución de los datos con el tiempo. Por ejemplo, si registra una temperatura cada segundo, podría querer:
    1. Conservar los datos de temperatura con una resolución de un segundo para los últimos 5 minutos.
    2. Mantener las temperaturas máximas, mínimas y promedio con una resolución de un minuto para las últimas 24 horas.
    3. Almacenar las temperaturas máximas, mínimas y promedio con una resolución de una hora para los datos más antiguos.

El uso de políticas de retención le permite almacenar datos históricos durante períodos prolongados sin necesitar terabytes de espacio de almacenamiento. Encontrará más información sobre la reducción de datos en la documentación oficial.

Por defecto, InfluxDB almacena datos indefinidamente. Aunque este comportamiento es típico para las bases de datos tradicionales, no es ideal para las bases de datos de series temporales, que deberían eliminar los datos obsoletos para evitar un crecimiento descontrolado.

Por ejemplo, si está almacenando datos de voltaje de batería, podrían ser relevantes solo durante unos días en lugar de años. Para evitar llenar su disco, es crucial establecer un período de retención para cada uno de sus buckets.

Para configurar la retención de datos:

  1. Abra su interfaz web de InfluxDB.
  2. Haga clic en "Data", luego "Buckets".
  3. Haga clic en "Settings" junto al bucket que desea configurar.
  4. Seleccione "Delete data older than" y elija su período de retención deseado.

¡No olvide que los datos más antiguos que el período de retención seleccionado se eliminarán permanentemente!

Tenga en cuenta que los datos en InfluxDB están organizados en shards. Los shards que contienen solo datos obsoletos se eliminan automáticamente, pero si un shard contiene una mezcla de datos obsoletos y actuales, no se eliminará. Por defecto, sin una política de retención definida, los shards contienen 7 días de datos. Esto significa que cuando establece una política de retención, casi 7 días de datos obsoletos podrían seguir conservándose junto con sus datos actuales. Encontrará más información sobre los shards en la documentación oficial.

Encontrará ejemplos sobre cómo enviar datos desde Node.js a un servicio InfluxDB en este repositorio: https://github.com/stackhero-io/influxdbGettingStarted