- iDRAC generates a Metricreport and sends a JSON formatted message via HTTP SSE to redfishread.go
- redfishread.go in the
parseReportfunction calls theSendGroupfunction in databus.go which will ultimately send it to the queue associated with the database you are using. So, for example, if you are running splunkpump it will send it to the queue /splunk on ActiveMQ. - The pump you are using will retrieve the message from the queue (ex: /splunk), dequeue it, and then send it to the associated database.
To understand a bit more about interacting with the various telemetry API endpoints it may be helpful to look at the GetSensorThresholds README
The official telemetry docs are available here
- Users begins by running compose.sh. This bash script will then use
docker-composeto run the file docker-compose.yml. - docker-compose.yml may have some syntax that is foreign to the user.
It makes use of Docker Compose Profiles and it also uses YAML
Anchors. The first thing Docker compose will
do is run Docker build on any of the containers not already built per the
buildsection of each of the containers - The containers are as follows:
- activemq: The message queue we use to transfer data between all containers, to and from the iDRACs, and to and from the time series database.
- mysqldb: This contains all of the various configurations for the pipeline. mysql provides a mechanism for persisting user settings via a named volume mount
- configui: Runs the frontend the user sees
- dbdiscauth: Responsible for servicing all requests to onboard iDRACs and iDRAC authentication. It also initializes and writes the settings to the MySQL database.
- redfishread: Uses HTTP SSE to read data from the specified iDRACs. It will write data to the databus by putting data in ActiveMQ's
databusqueue. - A time series database container:
- influx: InfluxDB
- grafana: Used with InfluxDB, TimescaleDB, and Prometheus
- prometheus: Prometheus
- Elasticsearch: Elasticsearch
- timescale: TimescaleDB
- A pump. There will be a container called <timeseriesdb_name>pump. This is responsible for pulling data from the message queue and sending it to the time series database.
