Tabla de Contenidos
InfluxDB
Base de datos para series temporales.
Instalación
Docker
La configuración se puede hacer mediante variables de entorno o utilizando un fichero de configuración. Para el segundo método, se puede crear un fichero de configuración por defecto mediante:
docker run --rm influxdb:meta influxd-meta config > influxdb-meta.conf
Se creará un fichero llamado influxdb-meta.conf que podremos configurar a nuestro gusto y luego pasárselo al contenedor
Anotar cómo pasarle ese fichero de configuración al contenedor
Ejemplo de docker-compose.yml:
services: influxdb: image: influxdb:latest ports: - "8086:8086" volumes: - ./data:/var/lib/influxdb environment: - INFLUXDB_DB=telegraf - INFLUXDB_USER=telegraf - INFLUXDB_USER_PASSWORD=supersecret - INFLUXDB_ADMIN_ENABLED=true - INFLUXDB_ADMIN_USER=admin - INFLUXDB_ADMIN_PASSWORD=supersecret
InfluxQL
InfluxQL es un lenguaje tipo SQL para interactuar con la información contenida en una base de datos InfluxDB.
La interacción con InfluxDB se hace con influx
Si queremos que los valores de tiempo vengan en un formato más amigable, ejecutamos el cliente de esta manera: influx -precision rfc3339. El tiempo vendrá de la forma YYYY-MM-DDTHH:MM:SS UTC. También se le puede indicar la precisión una vez conectados a la base de datos ejecutando precision rfc3339
Crear base de datos:
CREATE DATABASE nombre_base_datos
Eliminar base de datos:
DROP DATABASE nombre_base_datos
Mostrar bases de datos:
SHOW DATABASES
Seleccionar una base de datos:
USE nombre_base_datos
Crear usuario
CREATE USER "usuario" WITH PASSWORD 'contraseña'
Mostrar usuarios:
SHOW USERS
Mostrar las series de datos:
SHOW SERIES
Mediciones
Describe el tipo de dato almacenado.
Para ver las mediciones (measurements) que contiene el sistema:
SHOW MEASUREMENTS
Ejemplo de salida:
name: measurements name ---- cpu disk diskio kernel mem processes swap system
Series
Agrupación de datos definida por una medición, conjunto de etiquetas o campo compartidos.
Ejemplo de serie:
# medida, conjunto de etiquetas, clave de campo h2o_level, location=santa_monica, h2o_feet
Puntos
Un punto representa un registro de información y tiene 4 componentes:
- Medida
- Conjunto de etiquetas
- Conjunto de campos
- Timestamp
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
Ejemplo:
name: census ----------------- time butterflies honeybees location scientist 2015-08-18T00:00:00Z 1 30 1 perpetua
- Medida:
census - Conjunto de etiquetas: location = 1, scientist = perpetua
- Conjunto de campos: butterflies = 1, honeybees = 30
- Timestamp: 2015-08-18T00:00:00Z
